?? authiq.cs
字號:
using System;
using System.Xml;
using System.Xml.Serialization;
using System.Security.Cryptography;
using gowk.core.packets;
namespace gowk.core.packets.IQ
{
[XmlRoot("iq")]
[System.Serializable]
public class AuthIQ:IQ
{
public class AuthIQSerializerHelper:IQSerializerHelper
{
public override Type Target
{
get
{
return typeof(Packet);
}
}
public override bool CanSerizlize(XmlElement xe)
{
return base.CanSerizlize (xe)&&xe.GetElementsByTagName("query",Namespace.AUTH)!=null;
}
public override XmlAttributeOverrides Overrides
{
get
{
XmlAttributeOverrides ovs=base.Overrides;
XmlAttributes attrs = new XmlAttributes();
XmlElementAttribute attr = new XmlElementAttribute();
attr.ElementName = "query";
attr.Type = typeof(AuthQuery);
attrs.XmlElements.Add(attr);
XmlAttributeOverrides attrOverrides = new XmlAttributeOverrides();
attrOverrides.Add(typeof(RosterQuery), "Items", attrs);
return base.Overrides;
}
}
}
public class AuthQuery:Query
{
string u,p,d,r;
[System.Xml.Serialization.XmlElement("username")]
public string Username
{
get{return u;}
set{u=value;}
}
[System.Xml.Serialization.XmlElement("password")]
public string Password
{
get{return p;}
set{p=value;}
}
[System.Xml.Serialization.XmlElement("digest")]
public string Digest
{
get{return d;}
set{d=value;}
}
[System.Xml.Serialization.XmlElement("resource")]
public string Resource
{
get{return r;}
set{r=value ;}
}
public void SetDigest(string stream_id,string pass)
{ SHA1 sha = SHA1.Create(); byte[] hash = sha.ComputeHash(System.Text.Encoding.UTF8.GetBytes(stream_id+pass));
string di=System.BitConverter.ToString(hash);
di=di.Replace("-","");
this.d=di.ToLower();
this.p=null;
}
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -