好的,我必须在这里遗漏一些明显的东西,但在任何地方都找不到答案。
我在本地机器上的 .Net 4 中使用 FormsAuthentication。当我尝试访问安全页面时,.Net 将我重定向到 login.aspx 并在查询字符串中附加 ReturnUrl。例如 /pages/security/login.aspx?ReturnUrl=%2fPages%2fFriends.aspx
当我使用正确的详细信息登录时,我不会被重定向到 ReturnUrl - 相反,我会被重定向到 web.config defaultUrl 参数中的任何内容。
我的 web.config 看起来像这样:
<authentication mode="Forms">
<forms loginUrl="/pages/security/login.aspx" defaultUrl="/default.aspx" timeout="129600" />
</authentication>
这是重定向行:
FormsAuthentication.RedirectFromLoginPage(userID.ToString(), rememberMe);
我在 web.config 中放入 defaultUrl 的内容就是我被重定向到的内容。事实上,这也是我检查时 FormsAuthenticaton.GetRedirectUrl 中的值。.Net 似乎忽略了 ReturnUrl,但我想不出为什么。
有任何想法吗?