首页 新闻 搜索 专区 学院

asp.net mvc 默认身份认证失效事件

0
悬赏园豆:20 [已解决问题] 解决于 2018-04-27 11:22

ASP.NET 4.0中,使用默认的身份认证,在web.config中配置如下:

<authentication mode="Forms">
  <forms defaultUrl="~/" loginUrl="~/Account/Login" name=".ticket" timeout="30" slidingExpiration="true" />
</authentication>
<authorization>
  <deny users="?" />
</authorization>

默认情况下,身份失效时浏览器会跳转到登录页,并在后面带returnUrl参数,参数值为跳转前的url,现在想重写这个跳转事件,自定义跳转的url以及参数,怎么办?

hetianqi的主页 hetianqi | 初学一级 | 园豆:71
提问于:2017-10-23 17:24
< >
分享
最佳答案
0

可以通过中转站实现

<authentication mode="Forms">
  <forms defaultUrl="~/" loginUrl="~/Account/Relay" name=".ticket" timeout="30" slidingExpiration="true" />

在 Relay Action 中“自定义跳转的url以及参数”并 Redirect

收获园豆:20
dudu | 高人七级 |园豆:37633 | 2017-10-23 21:15

比如:跳转之前url为http://www.a.com/Home/Index,由于没有登录,现在需求需要跳转到http://login.a.com页面进行登录之后返回到http://www.a.com/Home/Index。

按照你说的方法,先跳转到http://www.a.com/Account/Relay,但是这时候returnUrl为/Home/Index,并不是完整的http://www.a.com/Home/Index,并且我还需要其他的一些额外的在http://www.a.com/Home/Index中的数据,这时候Account/Relay中已经没有这些额外数据了。。。

 

其实我就是在想,有没有一个解决办法可以重写跳转到loginUrl的方法,这样http://www.a.com/Home/Index的数据应该就不会丢失

hetianqi | 园豆:71 (初学一级) | 2017-10-24 11:50
其他回答(1)
0

就算是你能在web.config灵活设置加上返回页面,那是不是所有登录网站的用户在验证失败后,都会跳转到某一个用户身份验证失败的页面了。我不知道对不对。后台验证跳转页面,前台JS解析URL。

阿文sky | 园豆:158 (初学一级) | 2017-10-23 17:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册