限制访问整个网站

时间:2015-08-27 22:48:30

标签: asp.net authentication webforms asp.net-identity

如何限制对我的网站的根文件夹和所有子文件夹的访问?我有一个使用Identity进行身份验证的ASP.Net Webforms应用程序。用户将为他们创建帐户。当用户访问网站时,他们应该看到的第一件事是登录页面。我已经尝试了#34; /","〜/","",位置标记中的值,以及根本没有位置web.config文件中的tag,但这些都不会产生所需的结果。

{{1}}

2 个答案:

答案 0 :(得分:0)

删除<location>元素并尝试以下配置:

<system.web>
    <authentication mode="Forms">
        <forms name="FormsAuth" loginUrl="/your-login-path" /> 
    </authentication>
    <authorization>
        <deny users="?"/>
    </authorization>
    ....
</system.web>

根据您的环境/设置等,您可能需要对<forms>元素进行进一步的调整,但这应该可以帮助您。

修改

上述内容不适用于ASP.Net Indentity。我能够实现这一目标的唯一方法是在根目录和子文件夹<location>中为每个页面创建单独的web.config元素,根据需要明确拒绝或允许用户。

<location path="Default.aspx">
    <system.web>
      <authorization>
        <deny users ="?"/>
      </authorization>
    </system.web>
</location>

<system.web>
    <authentication mode="None"/>
    ...
</system.web>

答案 1 :(得分:0)

在Root Web.Config中添加:

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

在您的帐户/ Web.Confing中添加:

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

这对我有用