CSDN博客

img canduecho

解决User.Identity.IsAuthenticated=false 或User.Identity.Name=string.empty的问题

发表于2008/9/28 15:10:00  1542人阅读

(1) 首先的设了form 认证

system.web>
    <authentication mode="Forms">
      <forms domain="sdf" timeout="20" loginUrl="Login.aspx" path="/"></forms>
    </authentication>

   <authorization>
      <allow users="*"/>
    </authorization>

<system.web>

 

(2)在default.aspx.cs中加入代码。

//FormsAuthentication.SetAuthCookie("candu", true, FormsAuthentication.FormsCookiePath);
        FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, "candu", DateTime.Now, DateTime.Now.AddMinutes(20), false,"echo");
        // generate new identity
       // FormsIdentity identity = new FormsIdentity(ticket);
        HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket));
        // write to client.
        Response.Cookies.Add(cookie);
        Response.Write(HttpContext.Current.User.Identity.Name);

 

执行 Response.Write(HttpContext.Current.User.Identity.Name);得到是空值。

这时我真的不明白。

后来发现原来     Response.Cookies.Add(cookie);在第一次请求时,并没有马上发送到客户端。

所以取不到HttpContext.Current.User.Identity.Name的值。

 

第二次请求时,cookie已经发到客户端了,这时再

Response.Write(HttpContext.Current.User.Identity.Name);

就有值了。

 

 

阅读全文
0 0

相关文章推荐

img
取 消
img