Discuz!NT官方社区

首页 » Discuz!NT开发与测试 » Discuz!NT整合 » 关于用户cookie的几个问题
lhf3277 - 2007-12-31 16:02:00
比如我在用户数据库里多增加一个类型字段(0,1,2,3)之类的
然后用目录配置文件中的<allow roles="0" />限制用户目录访问

以下是我原程序中的登录cookie写入方式.
string userRoles = model.Ltype.ToString();
                FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket(1, user_name, DateTime.Now, DateTime.Now.AddMinutes(30), false, userRoles,"/");
                string HashTicket = FormsAuthentication.Encrypt(Ticket);
                HttpCookie UserCookie = new HttpCookie(FormsAuthentication.FormsCookieName, HashTicket);
                UserCookie.Domain = Domainym;
                HttpContext.Current.Response.Cookies.Add(UserCookie);
再用子目录中的Web.config加己限制
<authorization>
      <!--限制为只有0和3的用户可以访问这个目录-->
      <allow roles="0,3" />
      <deny users="*" />
    </authorization>

现在如果用
HttpCookie cookie = new HttpCookie("dnt", HashTicket);
                cookie.Values["userid"] = uid.ToString();
                cookie.Values["username"] = userinfo.Username.ToString();
                cookie.Values["password"] = Utils.UrlEncode(SetCookiePassword(userinfo.Password, passwordkey));
                if (Templates.GetTemplateItem(templateid) == null)
                {
                    templateid = 0;

                    foreach(string strTemplateid in Utils.SplitString(Templates.GetValidTemplateIDList(), ","))
                    {

                        if (strTemplateid.Equals(userinfo.Templateid.ToString()))
                        {
                            templateid = userinfo.Templateid;
                            break;
                        }
                    }
                }

               
                cookie.Values["tpp"] = userinfo.Tpp.ToString();
                cookie.Values["ppp"] = userinfo.Ppp.ToString();
                cookie.Values["pmsound"] = userinfo.Pmsound.ToString();
                if (invisible != 0 || invisible != 1)
                {
                    invisible = userinfo.Invisible;
                }
                cookie.Values["invisible"] = invisible.ToString();

                cookie.Values["referer"] = "index.aspx";
                cookie.Values["sigstatus"] = userinfo.Sigstatus.ToString();
                cookie.Values["expires"] = expires.ToString();
                //if (expires > 0)
                //{
                //    cookie.Expires = DateTime.Now.AddMinutes(expires);
                //}
                cookie.Expires = DateTime.Now.AddDays(1);
                cookie.Domain = RootDomin;

                HttpContext.Current.Response.Cookies.Add(cookie);
这种方式要用这个做登录的话
怎么做才能让我主站子目录中的配置文件
<authorization>
      <!--限制为只有0和3的用户可以访问这个目录-->
      <allow roles="0,3" />
      <deny users="*" />
    </authorization>
生效.

还有就是我用现在的论坛登录代码.我原来程序的识别用户登录都用不了了.Page.User.Identity.IsAuthenticated
lhf3277 - 2008-1-2 11:46:00
没人知道?
雪人 - 2008-1-4 19:41:00
dnt没有.net自带的身份验证方式,靠自己的方法验证的,楼主的网站必须要用原来那些验证方式?
lhf3277 - 2008-1-7 17:52:00
的确是需要的.如果要改动成DZ的方式的话,我得花了半个月的时间重新来写我的那些工程验证.有上千个CS要改..汗
1
查看完整版本: 关于用户cookie的几个问题