在检查您的 web.config 之后,您所描述的行为是我所期望的,只要在登录后您就可以导航和访问您网站中的所有页面。如果登录后,您仍然被重定向到登录页面,则说明您的其他设置有误。
web.config 中的 configuration/web.config/authorization 元素用于指定站点范围的授权规则。
<configuration>
<web.config>
<authorization>
<deny users="?" /> <!-- deny un-authenticated access, everyone not logged in that is -->
<allow users="*" /> <!-- allow everyone else -->
</authorization>
</web.config>
</configuration>
如果您有任何人可能需要访问的资源,您可以使用 configuration/location/system.web/authorization 元素修改对该资源的授权规则
<configuration>
<location path="SomeUnprotectedResource.aspx">
<authorization>
<allow users="*" /> <!-- anyone can view this page -->
</authorization>
</location>
</configuration>
与站点范围的规则相比,您甚至可能拥有进一步限制对页面的访问所需的资源。
<configuration>
<location path="OnlyForMe.aspx">
<authorization>
<allow users="Me" /> <!-- only the user Me can view this page -->
<deny users="*" /> <!-- deny everyone else -->
</authorization>
</location>
</configuration>
附带说明一下,如果您有 IIS 设置来保护所有网站资源(即 *.css、*.js)而不仅仅是 ASP.NET 资源,您还需要添加规则以允许访问它们。例如,您的 JavaScript 和样式可能在登录页面之外,因此它们可能需要样式和脚本才能工作。
<configuration>
<location path="styles/login.css">
<authorization>
<allow users="*" />
</authorization>
</location>
<location path="scripts/login.js">
<authorization>
<allow users="*" />
</authorization>
</location>
</configuration>