跨目录的RedirectFromLoginPage问题
本文关键字:RedirectFromLoginPage 问题 | 更新日期: 2023-09-27 18:14:57
我似乎面临着一个相当奇怪的问题与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来介入并纠正问题。重定向(与../Reports/Report1.aspx
一起工作),但我希望框架做适当的重定向,因为其余的东西是由表单身份验证处理。
编辑1 -我已经检查了IIS日志,我没有看到提到../Reports/Report1.aspx
场景的重定向,这是有意义的,因为重定向从未发生。
抱歉-我想这就是为什么一个人需要注意自己写的代码!我现在觉得自己很愚蠢,不是。net框架创建了ReturnUrl字符串,是我在做,我删除了多余的句号。
再次抱歉。