繁体   English   中英

RedirectFromLoginPage问题跨目录

[英]RedirectFromLoginPage issue across directories

我似乎面临RedirectFromLoginPage和跨文件夹页面的一个相当奇怪的问题。

我有一个启用了“表单”身份验证的网站,在“表单”文件夹中有“登录”页面,在“报告”文件夹中有其他aspx页面。 因此,要获取报告,您可以转到http://Servername/Reports/Report1.aspx ,如果您尚未登录,则将重定向到“登录”页面-http:// Servername / Forms / Login。 aspx?ReturnUrl = .. / Reports / Report1.aspx ,这似乎是正确的。

在登录页面上的aspx代码中,一旦我检查了登录信息并创建了Authcookie,然后检查我是否有ReturnUrl,如果有,就使用System.Web.Security.FormsAuthentication.RedirectFromLoginPage(username, false); ;。 用于重定向。

请注意登录页面的重定向URL- http://Servername/Forms/Login.aspx?ReturnUrl = .. / Reports / Report1.aspx原则上似乎正确,但登录重定向从未发生,我什至没有确定发生了什么,它就坐在那儿,然后在Chrome-net :: ERR_EMPTY_RESPONSE中提示“未接收到数据”。

但是,如果我尝试使用http://Servername/Forms/Login.aspx?ReturnUrl = / Reports / Report1.aspx ,则重定向会按预期进行,请注意区别是
ReturnUrl=/Reports/Report1.aspx相对于ReturnUrl=../Reports/Report1.aspx无效,尽管从文件夹角度来看前者是不正确的,而后者是正确的。

我是否错过了一些琐碎的事情(是否不是从“登录”页面的上下文进行重定向?),我可以通过删除开头的“ ..”来解决问题,也可以使用Respsone.Redirect(与一起使用) ../Reports/Report1.aspx ),但我希望该框架能够进行正确的重定向,因为其余的内容都由Forms Authentication处理。

编辑1-我已经检查了IIS日志,而且我看不到../Reports/Report1.aspx方案的重定向,这是有道理的,因为重定向从未发生。

抱歉-我想这就是为什么需要意识到一个人编写的代码的原因! 我现在觉得很愚蠢,不是.Net框架创建了ReturnUrl字符串,而是这样做了,我删除了那里的多余句点。

再次抱歉。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM