我正在增强 Web 应用程序的安全性。(确切地说是会话/会员 cookie 到期)。当我尝试在经过身份验证之前导航到页面时,我注意到了一些奇怪的事情。该页面在登录时工作,当我在登录前尝试访问它时,我被重定向到登录页面(正常),但是我被发送到的位置不正确。似乎它缺少 URL 中的区域。我想知道这是否与路线有关?
以下是更多信息:
来自 web.config 的代码:
<authentication mode="Forms">
<forms loginUrl="~/logininformation/loginhomepage" timeout="2880" />
</authentication>
- 原网址:
mysite.com/Display/Page/Index/62
- URL 重定向到登录后:
mysite.com/logininformation/loginhomepage?ReturnUrl=%2fPage%2fIndex%2f62
- 登录后的网址:
mysite.com/Page/Index/62
来自登录控制器的代码:
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}