Discuz!NT官方社区

首页 » Discuz!NT开发与测试 » Discuz!NT整合 » Cookies方式登录站的整合
no10pc - 2007-12-15 21:03:00
using System;
using System.Text;
using System.Web;
using System.Web.UI;
using Discuz.Common;
using Discuz.Config;
using Discuz.Entity;
using Discuz.Forum;
public partial class _Default : Page
{
    private int uid = -1;
    private string returnUrl = string.Empty;
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
        {
            returnUrl = Request.ServerVariables["HTTP_REFERER"].ToString();
            if(!String.IsNullOrEmpty(returnUrl))
            {
                ViewState["returnUrl"]=returnUrl;
            }
            else
            {
                ViewState["returnUrl"]="http://bbs.xxx.com";
            }
        }
     
    }
    protected void login_ServerClick(object sender, EventArgs e)
    {
        GeneralConfigInfo config = GeneralConfigs.GetConfig();
        uid = Users.CheckDvBbsPassword(username.Value, password.Value);
        if (uid != -1)
        {
            ShortUserInfo u = Users.GetShortUserInfo(uid);
            HttpCookie cookie = new HttpCookie("dnt");
            cookie.Values["userid"] = u.Uid.ToString();
            //XXXXXX为general.config文件中的<Passwordkey>节点的内容,就是密钥
            cookie.Values["password"] =Utils.UrlEncode(DES.Encode(u.Password, "XXXXXXXXXX"));
            cookie.Values["tpp"] = u.Tpp.ToString();
            cookie.Values["ppp"] = u.Ppp.ToString();
            cookie.Values["pmsound"] = u.Pmsound.ToString();
            cookie.Values["invisible"] = u.Invisible.ToString();
            cookie.Values["referer"] = "http://bbs.XXX.com/forumindex.aspx";
            cookie.Values["sigstatus"] = "1";
            cookie.Values["expires"] = "160";
            ///下面为我自己网站需要的COOKIES
            cookie.Values["myuid"] = u.Uid.ToString();
            cookie.Values["myusername"] =HttpUtility.UrlEncode(u.Username.Trim(), Encoding.GetEncoding("utf-8"));//防乱码
            cookie.Values["mylogins"] = Convert.ToInt32(u.Extcredits8).ToString();
            cookie.Values["mygroupid"] = u.Groupid.ToString();
            cookie.Expires = DateTime.Now.AddMinutes(160);
          //Domain信息一定要添加.而且要与论坛里关于COOKIES设置部份要一样
            cookie.Domain = ".XXX.com";
            HttpContext.Current.Response.AppendCookie(cookie);
            Response.Redirect(ViewState["returnUrl"].ToString());
        }
        else
        {
            Response.Write("登录失败!");
        }
    }
}
网站目录结构如下:

用此代码创建一个站点login.XXX.com,就可以实现网站\论坛同步登录了.
nanhu - 2007-12-17 22:13:00
楼主些仔细点
我是菜鸟
一步步写清除一点
谢谢!
1
查看完整版本: Cookies方式登录站的整合