📄 authenticatemanager.cs
字号:
using System;
using System.IO;
using System.Xml;
using System.Threading;
using gowk.core.packets;
using gowk.core.packets.querys;
using gowk.net.Sockets;
using gowk.net;
namespace gowk.core.managers
{
/// <summary>
/// AuthenticateManage 的摘要说明。
/// </summary>
public class AuthenticateManager:ManagerBase
{
public event JabberEventHandler LoginResult;
public AuthenticateManager():base()
{
}
public AuthenticateManager(JabberClient jc):base(jc)
{
}
protected internal override bool OnMessage(gowk.core.packets.Packet pack)
{
if(!(pack is IQ))return false;
IQ iq=(IQ)pack;
if(!(iq.Query is AuthQuery))return false;
return base.OnMessage (pack);
}
public void Login()
{
/* this.JabberClient.State=State.Logining;
IQ ar=new IQ();
ar.ID=IDGenerator.NewID;
ar.Type=PacketType.get;
AuthQuery arq=new AuthQuery();
arq.Username="gowhcy";
ar.Query=arq;
this.Send(ar);
System.Threading.Thread.Sleep(300);*/
IQ iq=new IQ();
iq.To=this.JabberClient.Jid.Server;
iq.Type=PacketType.set;
iq.ID=IDGenerator.NewID;
AuthQuery aq=new AuthQuery();
aq.Username=this.JabberClient.Jid.User;
System.Diagnostics.Debug.Assert(this.JabberClient.JabberStream.ID!=null);
aq.SetDigest(this.JabberClient.JabberStream.ID,this.JabberClient.Password);
// aq.Password=this.JabberClient.Password;
aq.Resource=this.JabberClient.Jid.Resouce;
iq.Query=aq;
if(this.LoginResult!=null)
this.Send(iq,new JabberCallBack(this.OnLoginResult),20000);
}
public void OnLoginResult(JabberEventArgs a)
{
if(a.ReplyPacket!=null && a.ReplyPacket.Type==PacketType.result)
{
this.JabberClient.State=State.Logined;
}
if(this.LoginResult!=null)
this.Invoke(this.LoginResult,new object[]{a});
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -