C# Web.config位置元素运行不正确
环境:ASP.NET 3.5、C#、表单身份验证、IIS 6 问题详细信息:我用表单身份验证设置了一个web.config文件,下面是C# Web.config位置元素运行不正确,c#,asp.net,web-config,forms-authentication,C#,Asp.net,Web Config,Forms Authentication,环境:ASP.NET 3.5、C#、表单身份验证、IIS 6 问题详细信息:我用表单身份验证设置了一个web.config文件,下面是位置元素,如下所示: <location path="Home/Common"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web&
位置
元素,如下所示:
<location path="Home/Common">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Business/Services">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
主/公用文件夹包含我的放弃密码.aspx
Login.aspx
页面被设置为LoginUrl
第一次访问登录页面时(没有之前的cookies等),放弃的密码链接功能正常。它会根据需要重定向到页面。
但是,一旦用户登录,在注销时,ForgotPassword链接不会重定向。相反,表单身份验证在登录url之前并重定向到登录url,返回url查询字符串指向忘记密码页面
问题很简单:如果在登录之前,元素被认为并正确地排除在表单身份验证之外,那么为什么在登录之后和注销之后,它会进入表单身份验证的范围
需要注意的是,在清除浏览器历史记录时,该功能按预期工作
任何帮助都将不胜感激
谢谢。使用问号(?)来允许/拒绝未经身份验证的用户更为常见。未经验证的用户是真正需要使用登录页面和密码重置功能的用户,因此允许所有用户(*)访问他们是不正确的配置。但是,您尚未发布整个Web.config。将有一个根配置用于处理“其他所有内容”的授权 我将如何在根目录中配置它,我将:
<authorization>
<allow users="*" />
</authorization>
稍后在Web.config中,定义受保护的位置:
<location path="Business/Services">
<deny users="?" />
</location>
它拒绝所有未经身份验证的用户访问该文件夹中的页面。您的登录和忘记密码页面将位于根文件夹中。无论如何,要么我遗漏了什么,要么您没有配置根身份验证,这可能会混淆ASP.NET的身份验证。更常见的是使用问号(?)来允许/拒绝未经身份验证的用户。未经验证的用户是真正需要使用登录页面和密码重置功能的用户,因此允许所有用户(*)访问他们是不正确的配置。但是,您尚未发布整个Web.config。将有一个根配置用于处理“其他所有内容”的授权 我将如何在根目录中配置它,我将:
<authorization>
<allow users="*" />
</authorization>
稍后在Web.config中,定义受保护的位置:
<location path="Business/Services">
<deny users="?" />
</location>
它拒绝所有未经身份验证的用户访问该文件夹中的页面。您的登录和忘记密码页面将位于根文件夹中。无论如何,要么我遗漏了什么,要么您没有配置根身份验证,这可能会混淆ASP.NET的身份验证