1 if (FormsAuthentication.Authenticate(model.UserName, model.Password)) 2 { 3 FormsAuthentication.SetAuthCookie(model.UserName, false); 4 bool IsLogin = User.Identity.IsAuthenticated; 5 return Redirect(returnUrl ?? Url.Action("Index", "Admin")); 6 }
这是我写在AccountController里面的控制器,然后我发现跳转过后的页面还是登录页面,然后排除问题,发现是认证没通过!!!
认证肯定是成功了的,要不然进不了这个 if 语句,然而奇怪的是 IsLogin 变量显示的是用户没有验证。。。
1 <authentication mode="Forms"> 2 <forms loginUrl="~/Account/Login" timeout="2880"> 3 <credentials passwordFormat="Clear"> 4 <user name="admin" password="secret" /> 5 </credentials> 6 </forms> 7 </authentication>
这是我在 Web.config 里面写的用户,讲道理的话表单认证就应该这么开启了。那么上面为什么会变成没有认证呢?
难道是因为我用的验证方法过时了,所以微软不让用了吗?
用 request.IsAuthenticated 试试
还有一个就是cookie的设置
http://www.cnblogs.com/leleroyn/archive/2008/04/23/1167445.html
用request.IsAuthenticated还是false,然后我也设置了认证cookie
@不如隐茶去: 看连接
因为cookie 分为 request cookie 和respones cookie 所以对于当前request cookie来说 是没有验证的
但是当前的responsecookie 是验证了的