好吧,我肯定遗漏了一些明显的东西,但在任何地方都找不到答案。
我在本地机器上使用.Net 4中的FormsAuthentication。当我试图访问一个受保护的页面时,.Net会将我重定向到login.aspx,并在查询字符串中附加ReturnUrl。例如,/pages/security/login.aspx?ReturnUrl=%2fPages%2fFriends.aspx
我的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,但我不知道为什么。
有什么想法吗?
发布于 2012-08-18 20:20:05
好吧,这是我的一个愚蠢的疏忽,但我认为我应该与你分享“解决方案”,因为它可能会帮助其他人经历这些症状。
查询字符串被剥离的原因是我的母版页中有一行将表单操作转换为小写,这是避免搜索引擎重复URL的努力的一部分。该行正在更新表单操作,但没有附加查询字符串。
因此,如果在回发时丢失了查询字符串值,请检查以确保form标记中的操作值包含该查询字符串。
https://stackoverflow.com/questions/11990855
复制相似问题