在客户方面(大型企业),我们有许多应用程序可以根据中央身份验证提供程序进行身份验证。这里发生了很多重定向,但是在Chrome和Firefox上无法正常工作。
(以前是唯一允许的IE。现在允许使用所有其他浏览器。这就是为什么现在会发生此问题。)
/App1/Home/Index
/AuthService/Auth/Login?ReturnUrl=/App1/Home/Index&AppId=3
/AdAuthService/Autologin/Login?ReturnUrl=/AuthService/Auth/ReturnFromAdLogin&prev=/App1/Home/Index
/AuthService/Auth/ReturnFromAdLogin?ReturnUrl=/App1/Home/Index
/App1/Home/Index
所有重定向均通过控制器操作中的RedirectResult
完成。
连接的问题是,所有步骤都可以在所有浏览器中使用,直到步骤3。在IE中的所有浏览器中,步骤3的查询字符串如下所示:
?ReturnUrl=/AuthService/Auth/ReturnFromAdLogin&prev=/App1/Home/Index
查询字符串分隔符得到HTML编码,并从&
变为&
。结果,无法读取prev
参数,并且用户永远不会重定向到最初请求的页面。
它不会更改步骤2中的分隔线。为什么?有任何想法吗?