下面是基于角色的验证:
string userRoles = UserToRole("A,B,C");//调用UserToRole方法来获取Role字符串
FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket(
1,
         user,
DateTime.Now, System.DateTime.Now.AddMinutes(30), CBSaveCookie.Checked,
userRoles ,
         "/");
string HashTicket = FormsAuthentication.Encrypt(Ticket); HttpCookie UserCookie = new HttpCookie(FormsAuthentication.FormsCookieName,HashTicket);
UserCookie.Expires = DateTime.MinValue;
Response.Cookies.Add(UserCookie);//为什么在这块却生成不了Cookie,在客户端找不到
Response.Redirect(Context.Request["ReturnUrl"]);

解决方案 »

  1.   

    而且也保存不了Cookie,但把Response.Redirect(Context.Request["ReturnUrl"]);替换为FormsAuthentication.RedirectFromLoginPage(user,true,"/");就可以生成Cookie 
    很是不明白。
      

  2.   

    可能是你在web.config中设置的cookie名与代码中设置的名不同。
      

  3.   

    HttpCookieCollection MyCookieCollection = Request.Cookies;HttpCookie MyCookie = new HttpCookie("User");
    MyCookie.Value = "007";
    MyCookieCollection.Add(MyCookie);
    //MyCookie.Expires = DateTime.Now.AddDays(1);
    Response.Cookies.Add(MyCookie);
      

  4.   

    我设置的是系统默认的Cookie名,应该没有问题吧。
    <forms name=".ASPXAUTH" loginUrl="Login.aspx" protection="All" timeout="30" path="/" />这个是WebConfig里面的Form