gpt4 book ai didi

forms-authentication - 如何使用 FormsAuthentication 授予对 url 的匿名访问权限?

转载 作者:行者123 更新时间:2023-12-03 11:49:12 26 4
gpt4 key购买 nike

在大多数情况下,我的 webapp 需要身份验证才能执行任何操作。有几个页面,即主页,我希望人们能够在不进行身份验证的情况下访问它们。

具体来说,我想允许匿名访问这些网址:

/home 
/default.aspx

我正在使用 asp.net MVC 和 FormsAuthentication。两个 url 都指向同一个 View :
/home/index.aspx

这是我在 web.config 中的当前配置。
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<authorization>
<deny users="?" />
</authorization>

阅读授权标签的文档,它说“配置 Web 应用程序的授权,控制客户端对 URL 资源的访问”。看来我应该能够使用授权标签来指定一个 url 并允许访问。

就像是:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

<authorization>
<deny users="?" />
</authorization>

<authorization url="/default.aspx">
<allow users="?" />
</authorization>

<authorization url="/home">
<allow users="?" />
</authorization>

最佳答案

我讨厌回答我自己的问题,但既然我最终弄明白了,我想我会分享这些知识。

使用位置标签并将允许和拒绝标签按正确的顺序放置。

位置标签可用于配置特定的 url 资源。就我而言,我想专门配置一些 url 和文件夹。

起初这不起作用,因为我没有正确顺序的允许/拒绝。根据 MSDN,“授权模块根据找到的第一个访问规则是允许还是拒绝规则来授予或拒绝对 URL 资源的访问。”

在我的情况下,我需要首先放置我所有的公共(public)内容(default.aspx、主页、样式、图像、脚本),然后我拒绝其他所有内容。我在最后一个位置标签上遗漏了路径。这使其适用于所有文件和子文件夹。

最终结果是,用户可以访问主页,调出图片和样式,但其他一切都必须登录。

这是我现在的网络配置文件:

<!--AUTHORIZATION AND AUTHENTICATION RULES-->
<location path="default.aspx">
<system.web>

<authorization>
<allow users="?"/>
</authorization>
</system.web>

</location>

<location path="Home">
<system.web>

<authorization>
<allow users="?"/>
</authorization>
</system.web>

</location>

<location path="Styles">
<system.web>

<authorization>
<allow users="?"/>
</authorization>
</system.web>

</location>

<location path="Scripts">
<system.web>

<authorization>
<allow users="?"/>
</authorization>
</system.web>

</location>

<location path="images">
<system.web>

<authorization>
<allow users="?"/>
</authorization>
</system.web>

</location>

<location allowOverride="true">
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" slidingExpiration="true" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>

<!--END AUTHORIZATION AND AUTHENTICATION RULES-->

关于forms-authentication - 如何使用 FormsAuthentication 授予对 url 的匿名访问权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com