表单验证 – 如何使用FormsAuthentication授予对URL的匿名访问权限?

表单验证 – 如何使用FormsAuthentication授予对URL的匿名访问权限?,第1张

概述在大多数情况下,我的webapp需要身份验证才能做任何事情。有几页,即首页,我希望人们能够访问而不进行身份验证。 具体来说,我想允许匿名访问这些网址: /home /default.aspx 我使用asp.net MVC和FormsAuthentication。两个url都指向相同的视图: /home/index.aspx 这是我目前在web.config中的配置。 <authenticatio 在大多数情况下,我的webapp需要身份验证才能做任何事情。有几页,即首页,我希望人们能够访问而不进行身份验证。

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

/home /default.aspx

我使用asp.net MVC和FormsAuthentication。两个url都指向相同的视图:

/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>
解决方法 我讨厌回答我自己的问题,但是由于我最终弄清楚了,我想我会分享知识。

使用位置标签,并按照正确的顺序放置allow和deny标签。

位置标签可用于配置特定的网址资源。在我的情况下,我想特别配置几个URL和文件夹。

最初没有工作,因为我没有按正确的顺序允许/拒绝。根据MSDN,“授权模块根据发现的第一个访问规则是允许还是拒绝规则,授予或拒绝访问URL资源。”

在我的情况下,我需要把所有的公共资料放在第一位(default.aspx,home,styles,图像,脚本),然后我把所有的东西都拒绝。我遗漏了最后一个位置标签上的路径。这使它适用于所有文件和子文件夹。

最终结果,用户可以访问主页,拉起图像和样式,但是必须登录。

这是我现在的web配置文件:

<!--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-->
总结

以上是内存溢出为你收集整理的表单验证 – 如何使用FormsAuthentication授予对URL的匿名访问权限?全部内容,希望文章能够帮你解决表单验证 – 如何使用FormsAuthentication授予对URL的匿名访问权限?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存