首页 新闻 会员 周边

ASP.NET MVC 中用户认证成功了无法跳转到之前的页面

0
悬赏园豆:100 [已解决问题] 解决于 2016-04-04 18:40
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 里面写的用户,讲道理的话表单认证就应该这么开启了。那么上面为什么会变成没有认证呢?

 

难道是因为我用的验证方法过时了,所以微软不让用了吗?

不如隐茶去的主页 不如隐茶去 | 小虾三级 | 园豆:559
提问于:2016-04-03 01:17
< >
分享
最佳答案
0

用 request.IsAuthenticated 试试

还有一个就是cookie的设置 

http://www.cnblogs.com/leleroyn/archive/2008/04/23/1167445.html

收获园豆:100
小眼睛老鼠 | 老鸟四级 |园豆:2731 | 2016-04-03 11:11

用request.IsAuthenticated还是false,然后我也设置了认证cookie

不如隐茶去 | 园豆:559 (小虾三级) | 2016-04-03 12:06

@不如隐茶去: 看连接 

因为cookie 分为 request cookie 和respones cookie 所以对于当前request cookie来说 是没有验证的

但是当前的responsecookie 是验证了的

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2016-04-03 12:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册