主接口文件imxml.aspx.cs代码如下
using System;
using System.Data;
using System.Text;
using System.Web;
using JumbotCms.Libs;
using JumbotCms.Common;
namespace JumbotCms.WebFile.Ntalker
{
/// <summary>
/// Ntalker的接口文件
/// 记住千万别用Session或Cookie来验证身份的合法性
/// 否则只能在ie下正常
/// </summary>
public partial class _imxml : JumbotCms.UI.BasicPage
{
private bool isusesitekey = true;//需要验证sitekey
private string sitekey = "b2324e6a53c9aa210453d577d0******";//这个是在Ntalker网站申请时得到的
protected void Page_Load(object sender, EventArgs e)
{
Response.Expires = 0;
Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1);
Response.AddHeader("pragma", "no-cache");
Response.CacheControl = "no-cache";
Response.Charset = "utf-8";
Response.ContentType = "text/xml";
StringBuilder _xml = new StringBuilder();
_xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
_xml.Append("<imxml encoding=\"utf-8\">");
string querytype = q("query").ToLower();
if (querytype == "")
{
_xml.Append("<error>no valid query param</error>");
_xml.Append("</imxml>");
}
else
{
switch (querytype)
{
case "imxmlversion"://1
_xml.Append(GetVersion());
break;
case "login"://2
_xml.Append(GetLogin());
break;
case "userprofile"://3
_xml.Append(GetUserProfile());
break;
case "siteprofile"://4
_xml.Append(GetSiteProfile());
break;
case "buddylist"://5
_xml.Append(GetBuddyList());
break;
case "addbuddy"://6
_xml.Append(AddBuddy());
break;
case "delbuddy"://7
_xml.Append(DelBuddy());
break;
default:
_xml.Append("<error>query param is not valide</error>");
break;
}
_xml.Append("</imxml>");
}
Response.Write(_xml.ToString());
Response.End();
}
/// <summary>
/// imxml接口的版本号//1
/// *功能:返回imxml接口的版本号
/// *输入参数:空
/// *返回结果
/// version: 接口文件版本号节点,如2.0,2.1。ntalker2.0要求为2.0.0
/// for: 适用论坛版本,如discuz7.0等
/// build: 发行时间节点,如20090501
/// </summary>
/// <returns></returns>
///
private string GetVersion()
{
StringBuilder _html = new StringBuilder();
_html.Append("<version>2.0.0</version>");
_html.Append("<for>JumbotCms 4.2</for> ");
_html.Append("<build>20100318</build>");
return _html.ToString();
}
/// <summary>
/// *功能:验证用户是否登陆在社区网站,验证模式包括两种,一是本接口,按照sessionid方式验证
///二是其它需要验证身份的接口,先验证session,如果成功,则校验结束,如果失败,再按照userkey方式验证。
///(sitekey是网站和ntalker服务器上共同拥有的一个密钥,作为一个变量,存储在配置文件(imconfig)中。
///如果要启用sitekey验证,请先修改配置文件中的enablesitekey为true)
///*输入参数
///query: login
///uid: 用户id
///sid: 用户seesionid值
///*返回结果
///返回一个节点sessionvalide,值为true代表验证通过,用户登陆在论坛中,false代表验证失败
/// </summary>
/// <returns></returns>
private string GetLogin()
{
string userid = Str2Str(q("uid"));
string sid = q("sid");
if (userid == "1") SaveVisitLog(1, 0, "~/ntalker/logs/login_" + DateTime.Now.ToString("yyyyMMdd") + ".log");
if (IsLogin(userid, sid, "", false))
{
return "<sessionvalide>true</sessionvalide>";
}
else
{
return "<sessionvalide>false</sessionvalide>";
}
}
/// <summary>
/// *功能:查看用户个人信息
///*输入参数
///query: userprofile
///uid:发起查询的用户id
///sid:发起查询的用户seesionid值
///userkey:uid和sitekey全小写字符串拼接后再md5的值。例如:uid="001", sitekey="test001",则 userkey = md5("001test001")。
///(sitekey从ntalker申请获得,填写到imconfig配置文件中的sitekey字段,必须与ntalker服务器保持一致
///destid: 被查询用户id(如果等于uid,则表示查询自己的信息,否则是聊友的信息)
///isuserapp: 取值true|false,是否返回userapp节点(被查询用户的用户应用,显示在聊天窗口中)
///ismyapp: 取值true|false,是否返回myapp节点(发起查询用户的用户应用,显示在好友列表中)
///isdetail: 取值true|false,是否返回全部资料
///*返回结果
///返回一个节点sessionvalide,值为true代表验证通过,用户登陆在论坛中,false代表验证失败
///(如果为false,则再返回一个节点userkeyvalide,值为true代表验证通过,用户登陆在论坛中,false代表验证失败)
///返回一个节点userprofile,其中包含一下几个子结点:
///uid: 被查询用户的id
///name: 被查询用户的名
///nick: 被查询用户的昵称
///icon: 被查询用户的头像url,包括"http://url"头
///smallicon: 被查询用户的小头像url(48*48像素),包括"http://url"头
///isdefaulticon: 被查询用户的头像是否是默认头像(即用户没有设置头像),0,非默认头像;1,默认头像;-1,无法判断(未知)
///profileurl: 被查询用户个人信息页面地址
///sex: 被查询用户的性别(male男性|female女性|-1未知)
///bday: 被查询用户的用户生日(XXXX年-XX月-XX日)
///country: 被查询用户的地域-国家
///province: 被查询用户的地域-省
///city: 被查询用户的地域-城市
///signature: 被查询用户的用户签名
///usergroup: 被查询用户的用户组名称,包含用户组id属性
///id: 用户组的id
///isdetail为true时,增加下列子节点:
///privacy: 隐私设置,如果为1,则显示下列子节点的内容,如果为0,则只显示这些节点本身(即节点内容置空)
///isshowemail: 被查询用户的是否显示邮件地址,取值true|false
///email: 被查询用户的邮箱地址
///profileinfo: 网站自己定义的用户个人信息一段文本,如"积分:23000 帖子:21 精华:2",该字段会显示在好友列表的上边区域
///isshowprofile:是否显示前一项用户个人信息,取值true|false
///money: 被查询用户在网站的金钱
///credit: 被查询用户在网站的积分
///isuserapp为true时,增加下列子节点:
///userapp : 被查询用户的用户应用,显示在聊天窗口中,最多6个
///userapp1: 用户应用的ICON/URL/NAME,每个项目分别是个子节点
///userapp2: 用户应用的ICON/URL/NAME
///userapp3: 用户应用的ICON/URL/NAME
///userapp4: 用户应用的ICON/URL/NAME
///userapp5: 用户应用的ICON/URL/NAME
///userapp6: 用户应用的ICON/URL/NAME
///ismyapp为true时,增加下列子节点:
///myapp: 发起查询用户的用户应用,显示在好友列表中,最多6个
///myapp1: 用户应用的ICON/URL/NAME,每个项目分别是个子节点
///myapp2: 用户应用的ICON/URL/NAME
///myapp3: 用户应用的ICON/URL/NAME
///myapp4: 用户应用的ICON/URL/NAME
///myapp5: 用户应用的ICON/URL/NAME
///myapp6: 用户应用的ICON/URL/NAME
/// </summary>
/// <returns></returns>
private string GetUserProfile()
{
string sid = q("sid");
string userid = Str2Str(q("uid"));//发起查询的用户id
string userkey = q("userkey");
string destid = Str2Str(q("destid"));//被查询用户id
bool isdetail = q("isdetail") != "false" ? true : false;
StringBuilder _html = new StringBuilder();
if (IsLogin(userid, sid, userkey, isusesitekey))
{
_html.Append("<sessionvalide>true</sessionvalide>");
_html.Append("<userkeyvalide>true</userkeyvalide>");
JumbotCms.Entity.Normal_User _User = new JumbotCms.SqlServerDAL.Normal_UserDAL().GetEntity(destid);
_html.Append("<userprofile>");
_html.Append("<uid>").Append(destid).Append("</uid>");//被查询用户的id
_html.Append("<name>").Append(_User.UserName).Append("</name>");//被查询用户的名
_html.Append("<nick>").Append(_User.NickName).Append("</nick>");//被查询用户的昵称
_html.Append("<icon>").Append(site.Url + site.Dir + "avatar/" + destid + "_l.jpg").Append("</icon>");
_html.Append("<smallicon>").Append(site.Url + site.Dir + "avatar/" + destid + "_m.jpg").Append("</smallicon>");//被查询用户的小头像url(48*48像素)
_html.Append("<isdefaulticon>1</isdefaulticon>");//被查询用户的头像是否是默认头像(即用户没有设置头像),0,非默认头像;1,默认头像;-1,无法判断(未知)
_html.Append("<profileurl>" + _User.HomePage + "</profileurl>");
if (_User.Sex == 1)
_html.Append("<sex>male</sex>");//male男性|female女性|-1未知
else if (_User.Sex == 2)
_html.Append("<sex>female</sex>");//male男性|female女性|-1未知
else
_html.Append("<sex>-1</sex>");
_html.Append("<bday>" + _User.BirthDay + "</bday>");//用户生日(XXXX年-XX月-XX日)
_html.Append("<country>中国</country>");//地域-国家
_html.Append("<province>" + _User.ProvinceCity.Split('-')[0] + "</province>");//地域-省
_html.Append("<city>" + _User.ProvinceCity.Split('-')[1] + "</city>");//地域-城市
_html.Append("<signature>" + _User.Signature + "</signature>");//被查询用户的用户签名
_html.Append("<usergroup>网站会员</usergroup>");
_html.Append("<usergroup>").Append("网站会员").Append("</usergroup>");
if (isdetail)
{
_html.Append("<privacy>1</privacy>");//隐私设置,如果为1,则显示下列子节点的内容,如果为0,则只显示这些节点本身(即节点内容置空)
_html.Append("<isshowemail>true</isshowemail>");//被查询用户的是否显示邮件地址
_html.Append("<email>").Append(_User.Email).Append("</email>");//被查询用户的邮箱地址
_html.Append("<profileinfo>积分:" + _User.Integral + " 点数:" + _User.Points + "</profileinfo>");//网站自己定义的用户个人信息一段文本,如"积分:23000 帖子:21 精华:2",该字段会显示在好友列表的上边区域
_html.Append("<isshowprofile>true</isshowprofile>");//是否显示前一项用户个人信息,取值true|false
_html.Append("<credit>" + _User.Integral + "</credit>");//用户在网站的积分
_html.Append("<money>" + _User.Points + "</money>");//用户在网站的金钱
}
_html.Append("</userprofile>");
}
if (userid == "1") SaveVisitLog(1, 0, "~/ntalker/logs/userprofile_" + DateTime.Now.ToString("yyyyMMdd") + ".log");
return _html.ToString();
}
/// <summary>
/// *功能:返回网站的配置信息
///*输入参数:空
///*返回结果
///havebuddylist:网站是否有好友列表,取值true或false。如果为false,则用户的好友数据将存储于ntalker。
///disablebuddylist:强制关闭好友列表,即打开ntalker后,不出现好友列表项目,也不支持添加、删除好友,取值true或false(暂时没有启用)
///disableonlinelist:强制关闭在线会员列表,即打开ntalker后,不出现在线会员列表项目,取值true或false(暂时没有启用)
///isbuddyboth:是否双向好友,双向好友加好友需要确认,取值true或false
///emailofflinemessage:是否用email发送离线消息,取值true或false
///forbiddenwordslist:禁用词列表
///domainlogolarge:网站标示图标
///software:网站软件类型,包括discuz、phpwind、ucenterhome、dvbbs和custom 共5种类型
///softwareversion:软件版本号如5.0 6.0 .6.1等
///language:网站语言,包括gbk utf-8等
///isusesitekey:是否启用sitekey认证系统,取值true或false,取值来自imconfig的enablesitekey变量
///systimestamp: 系统的当前时间戳
///sitenanme:网站的名称
///version:接口文件版本号节点,如2.0,2.1。ntalker2.0要求至少为2.0.0(同imxmlversion接口)
///build:发行时间节点,如20090501(同imxmlversion接口)
/// </summary>
/// <returns></returns>
private string GetSiteProfile()
{
StringBuilder _html = new StringBuilder();
_html.Append("<havebuddylist>true</havebuddylist>");//网站是否有好友列表,取值true或false。如果为false,则用户的好友数据将存储于ntalker。
_html.Append("<isbuddyboth>true</isbuddyboth>");//强制关闭好友列表,即打开ntalker后,不出现好友列表项目,也不支持添加、删除好友,取值true或false(暂时没有启用)
_html.Append("<disablebuddylist>true</disablebuddylist>");//强制关闭在线会员列表,即打开ntalker后,不出现在线会员列表项目,取值true或false(暂时没有启用)
_html.Append("<disableonlinelist>true</disableonlinelist>");//是否双向好友,双向好友加好友需要确认,取值true或false
_html.Append("<emailofflinemessage>false</emailofflinemessage>");//是否用email发送离线消息,取值true或false
_html.Append("<forbiddenwordslist>fuck,shit,操,逼,屄,屌</forbiddenwordslist>");//禁用词列表
_html.Append("<domainlogolarge>" + site.Url + site.Dir + "images/logo.gif</domainlogolarge>");//网站标示图标
_html.Append("<software>jumbotcms</software>");//网站软件类型
_html.Append("<softwareversion>4.2</softwareversion>");//软件版本号
_html.Append("<language>utf-8</language>");//网站语言,包括gbk utf-8等
if (isusesitekey)
_html.Append("<isusesitekey>true</isusesitekey>");//是否启用sitekey认证系统,取值true或false
else
_html.Append("<isusesitekey>false</isusesitekey>");
_html.Append("<systimestamp>true</systimestamp>");//系统的当前时间戳
_html.Append("<sitenanme>" + site.Name + "</sitenanme>");//网站的名称
_html.Append("<version>2.0.0</version>");
_html.Append("<build>20100318</build>");
return _html.ToString();
}
/// <summary>
///*功能:获取好友列表的信息。
///包括两个模式,一是简洁模式,只返回好友uid、username、icon、smallicon、isdefaulticon、buddygroup等基本信息,二是详细信息,返回更多好友信息。
///maxbuddynum默认为255,好友数量如果超过maxbuddynum,返回好友列表要按照最近登录时间排序,以保证在线好友出现在好友列表中。
///对于好友数量超过maxbuddynum的,提供翻页功能,ntalker服务器通过pageindex传入当前的页数。
///*输入参数
///query: buddylist
///uid:发起查询好友的用户id
///sid:发起查询好友的用户seesionid值
///userkey:uid和sitekey全小写字符串拼接后再md5的值。例如:uid="001", sitekey="test001",则 userkey = md5("001test001")。
///(sitekey从ntalker申请获得,填写到imconfig配置文件中的sitekey字段,必须与ntalker服务器保持一致
///pagesize: 单页最大返回好友数量,默认为255个
///pageindex: 返回第几页的好友,在好友数量超过pagesize,用户操作好友列表翻页时(从0开始)
///isdetail: 取值true|false,是否返回详细资料
///*返回结果
///返回一个节点sessionvalide,值为true代表验证通过,用户登陆在论坛中,false代表验证失败
///(如果为false,则再返回一个节点userkeyvalide,值为true代表验证通过,用户登陆在论坛中,false代表验证失败)
///返回一个节点pageindex:当前请求的好友列表页数(从0开始)
///返回一个节点pagesize:当前使用的每页好友数量
///返回一个节点allbuddynum:所有好友数量,供客户端判断是否需要翻页 (allbuddynum>pagesize时需要客户端翻页)
///返回一个节点buddylist,buddylist内包含多个buddy节点,每个buddy包括若干个子节点
///buddylist内包含多个buddy节点
///isdetalil 为ture时,返回
///uid: 好友用户id
///name: 好友用户名
///icon: 好友头像地址
///smallicon: 被查询用户的小头像url(48*48像素),包括"http://url"头
///isdefaulticon: 被查询用户的头像是否是默认头像(即用户没有设置头像),0,非默认头像;1,默认头像;-1,无法判断(未知)
///buddygroup: 好友组的名称,包含id属性(即好友组的id)
///nick:: 好友昵称
///sex : 性别
///bday: 用户生日(XXXX年-XX月-XX日)
///signature :签名
///profileurl:空间url
///credit: 用户在网站的积分
///money: 用户在网站的金钱
///usergroup:用户组
///country:地域-国家
///province:地域-省
///city:地域-城市
///isdetalil 为false时,返回
///uid、name、icon、smallicon、isdefaulticon、profileurl、buddygroup 7个子结点
/// </summary>
/// <returns></returns>
private string GetBuddyList()
{
string sid = q("sid");
string userid = Str2Str(q("uid"));
string userkey = q("userkey");
string pagesize = Str2Str(q("pageindex"));//单页最大返回好友数量,默认为255个
string pageindex = q("pageindex") == "-1" ? "0" : Str2Str(q("pageindex"));//返回第几页的好友,在好友数量超过pagesize,用户操作好友列表翻页时(从0开始)
bool isdetail = q("isdetail") != "false" ? true : false;
bool _islogin = IsLogin(userid, sid, userkey, isusesitekey);
StringBuilder _html = new StringBuilder();
if (_islogin)
{
_html.Append("<sessionvalide>true</sessionvalide>");
_html.Append("<userkeyvalide>true</userkeyvalide>");
_html.Append("<pageindex>" + pageindex + "</pageindex>");
_html.Append("<pagesize>" + pagesize + "</pagesize>");
DataTable dt = new JumbotCms.SqlServerDAL.Normal_UserFriendsDAL().GetTable(userid);
_html.Append("<allbuddynum>" + dt.Rows.Count + "</allbuddynum> ");
_html.Append("<buddylist>");
for (int i = 0; i < dt.Rows.Count; i++)
{
string uid = dt.Rows[i]["FriendUserId"].ToString();
string name = dt.Rows[i]["FriendUserName"].ToString();
string nick = dt.Rows[i]["FriendNickName"].ToString();
string sex = dt.Rows[i]["FriendSex"].ToString();
string birthday = dt.Rows[i]["FriendBirthday"].ToString();
string province = dt.Rows[i]["FriendProvinceCity"].ToString().Split('-')[0];
string city = dt.Rows[i]["FriendProvinceCity"].ToString().Split('-')[1];
string homepage = dt.Rows[i]["FriendHomepage"].ToString();
string signature = dt.Rows[i]["FriendSignature"].ToString();
_html.Append("<buddy>");
_html.Append("<uid>").Append(uid).Append("</uid>");//好友用户id
_html.Append("<name>").Append(name).Append("</name>");//好友用户名
_html.Append("<icon>").Append(site.Url + site.Dir + "avatar/" + uid + "_l.jpg").Append("</icon>");//好友头像地址
_html.Append("<smallicon>").Append(site.Url + site.Dir + "avatar/" + uid + "_m.jpg").Append("</smallicon>");//被查询用户的小头像url(48*48像素)
_html.Append("<isdefaulticon>1</isdefaulticon>");//被查询用户的头像是否是默认头像(即用户没有设置头像),0,非默认头像;1,默认头像;-1,无法判断(未知)
_html.Append("<profileurl>" + homepage + "</profileurl>");
_html.Append("<buddygroup id=\"0\">网站好友</buddygroup>");
if (isdetail)
{
_html.Append("<nick>").Append(nick).Append("</nick>");//好友昵称
if (sex == "1")
_html.Append("<sex>male</sex>");//male男性|female女性|-1未知
else if (sex == "2")
_html.Append("<sex>female</sex>");//male男性|female女性|-1未知
else
_html.Append("<sex>-1</sex>");
_html.Append("<bday>网站会员</bday>");//用户生日(XXXX年-XX月-XX日)
_html.Append("<signature>" + signature + "</signature>");//签名
_html.Append("<credit>0</credit>");//用户在网站的积分
_html.Append("<money>0</money>");//用户在网站的金钱
_html.Append("<usergroup>网站会员</usergroup>");
_html.Append("<country>中国</country>");//地域-国家
_html.Append("<province>" + province + "</province>");//地域-省
_html.Append("<city>" + city + "</city>");//地域-城市
}
_html.Append("</buddy>");
}
_html.Append("</buddylist>");
}
else
{
_html.Append("<sessionvalide>false</sessionvalide>");
}
if (userid == "1") SaveVisitLog(1, 0, "~/ntalker/logs/buddylist_" + DateTime.Now.ToString("yyyyMMdd") + ".log");
return _html.ToString();
}
/// <summary>
/// 添加好友//6
///*输入参数
///query: addbuddy
///uid:主动发起加好友请求的用户id
///sid:主动发起加好友请求的用户seesionid值
///userkey:uid和sitekey全小写字符串拼接后再md5的值。例如:uid="001", sitekey="test001",则 userkey = md5("001test001")。
///(sitekey从ntalker申请获得,填写到imconfig配置文件中的sitekey字段,必须与ntalker服务器保持一致
///newbuddyid:被请求加好友的用户id
///*返回结果
///返回一个节点sessionvalide,值为true代表验证通过,用户登陆在论坛中,false代表验证失败
///(如果为false,则再返回一个节点userkeyvalide,值为true代表验证通过,用户登陆在论坛中,false代表验证失败)
///返回一个节点addbuddyresult,节点值:
///accepted: 自动接受,网站是单向好友模式或者是双向好友模式,对方设置了自动接受加好友
///acceptedboth: 对方已经申请加自己好友,且等待自己验证
///refused: 拒绝,网站是双向好友模式,对方设置了自动拒绝加好友
///confirming:认证中
///failed::添加好友失败
///error节点值为一描述字符串,在加好友失败(failed)情况下,描述失败原因
/// </summary>
/// <returns></returns>
private string AddBuddy()
{
string sid = q("sid");
string userid = Str2Str(q("uid"));
string userkey = q("userkey");
string newbuddyid = q("newbuddyid");//被加为好友的id
StringBuilder _html = new StringBuilder();
if (IsLogin(userid, sid, userkey, isusesitekey))
{
_html.Append("<sessionvalide>true</sessionvalide>");
_html.Append("<userkeyvalide>true</userkeyvalide>");
if (new JumbotCms.SqlServerDAL.Normal_UserFriendsDAL().AddFriend(userid, "", newbuddyid))
{
_html.Append("<addbuddyresult>accepted</addbuddyresult>");
}
else
{
_html.Append("<error>用户已存在于您的好友列表中</error>");
_html.Append("<addbuddyresult>failed</addbuddyresult>");
}
}
else
{
_html.Append("<sessionvalide>false</sessionvalide>");
_html.Append("<error>请先登录" + site.Name + "的" + site.UserItem + "中心。</error>");
_html.Append("<addbuddyresult>failed</addbuddyresult>");
}
if (userid == "1") SaveVisitLog(1, 0, "~/ntalker/logs/addbuddy_" + DateTime.Now.ToString("yyyyMMdd") + ".log");
return _html.ToString();
}
/// <summary>
///*功能:删除好友
///*输入参数
///query: delbuddy
///uid:主动发起删除好友请求的用户id
///sid:主动发起删除好友请求的用户seesionid值
///userkey:uid和sitekey全小写字符串拼接后再md5的值。例如:uid="001", sitekey="test001",则 userkey = md5("001test001")。
///(sitekey从ntalker申请获得,填写到imconfig配置文件中的sitekey字段,必须与ntalker服务器保持一致
///delbuddyid:被删除好友的用户id
///*返回结果
///返回一个节点sessionvalide,值为true代表验证通过,用户登陆在论坛中,false代表验证失败
///(如果为false,则再返回一个节点userkeyvalide,值为true代表验证通过,用户登陆在论坛中,false代表验证失败)
///返回一个节点delbuddyresult,节点值:
///success: 单向好友解除成功
///bothsuccess: 双向好友解除成功
///failed: 解除失败,失败原因在error节点中
///error节点值为一描述字符串,在解除失败(failed)情况下,描述失败原因
/// </summary>
/// <returns></returns>
private string DelBuddy()
{
string sid = q("sid");
string userid = Str2Str(q("uid"));
string userkey = q("userkey");
string delbuddyid = q("delbuddyid");//被删除的好友的id
StringBuilder _html = new StringBuilder();
if (IsLogin(userid, sid, userkey, isusesitekey))
{
_html.Append("<sessionvalide>true</sessionvalide>");
_html.Append("<userkeyvalide>true</userkeyvalide>");
if (new JumbotCms.SqlServerDAL.Normal_UserFriendsDAL().DeleteByFriendID(userid, "", delbuddyid))
{
_html.Append("<delbuddyresult>success</delbuddyresult>");//success: 单向好友解除成功;bothsuccess: 双向好友解除成功
}
else
{
_html.Append("<error>您的好友列表中没有该用户</error>");
_html.Append("<delbuddyresult>failed</delbuddyresult>");//解除失败
}
}
else
{
_html.Append("<sessionvalide>false</sessionvalide>");
_html.Append("<userkeyvalide>false</userkeyvalide>");
_html.Append("<error>请先登录" + site.Name + "的" + site.UserItem + "中心。</error>");
_html.Append("<delbuddyresult>failed</delbuddyresult>");
}
if (userid == "1") SaveVisitLog(1, 0, "~/ntalker/logs/delbuddy_" + DateTime.Now.ToString("yyyyMMdd") + ".log");
return _html.ToString();
}
/// <summary>
/// 验证是否登录
/// </summary>
/// <param name="_userid"></param>
/// <param name="_sid"></param>
/// <param name="_userkey"></param>
/// <param name="_isusesitekey"></param>
/// <returns></returns>
private bool IsLogin(string _userid, string _sid, string _userkey, bool _isusesitekey)
{
if (_userid == "0")
return false;
if (_isusesitekey && GetHash32(_userid + sitekey) != _userkey)//sitekey验证
return false;
return true;
}
}
}
[责任编辑:jumbot]