web.config授权拒绝未经授权

时间:2010-10-06 15:48:48

标签: .net asp.net .net-4.0 authorization

我正在为ASP.NET Web应用程序开发.NET,并试图拒绝所有未经授权的用户访问我的应用程序,但只允许他们访问登录页面。

下面是我的system.web部分中的代码片段:

<authentication mode="Forms">
   <forms loginUrl="Login.aspx" timeout="60" name="APPNAME" slidingExpiration="true" />
</authentication>
<authorization>
   <deny users="?" />
</authorization>

我也在外面允许访问登录页面:

  <location path="Login.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

但是,当我没有登录时,我仍然能够访问页面,我怎么能阻止这种情况发生呢?

我甚至在Main文件夹中添加了一个Web.Config文件,该文件夹存储了以下内容的大部分网站文件:

<?xml version="1.0"?>
<configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>
        <authorization>
            <deny users="?" />
        </authorization>
    </system.web>
</configuration>

但这仍然没有任何效果。

解决方案

我已经关注了asp.net(http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx)的一些优化提示,并删除了我实际需要的AnonymousIdentification httpModule。

3 个答案:

答案 0 :(得分:6)

我认为,如果您将不同的网页放在不同的文件夹中,那么处理ASP.NET授权会更容易。这不是一个要求。它更容易管理。

如果您在VS 2010中(我不确定这是否在快递版中)请尝试使用项目菜单底部的ASP.NET配置工具。

我发现很容易通过首先使用该工具来学习web.config文件的工作方式,对安全性进行一些更改,然后继续查看它的作用。

如果您只是从VS 2010中的空白ASP.NET应用程序开始,您可以通过进行两项更改来锁定除登录和注册页面之外的所有内容:

在根web.config

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

在“帐户”子文件夹中的web.config中

<?xml version="1.0"?>
<configuration>

  <location path="Register.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

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

</configuration>

您将看到用户立即被定向到登录页面,但他们仍然可以注册。

答案 1 :(得分:2)

尝试将LoginStatus控件添加到您的页面以检查您的登录状态。

您之前可能已选中“已保存的密码”选项。使用control userpassword2命令检查并清除缓存的密码。

答案 2 :(得分:1)

您可以将新的Web.config放入需要应用权限的文件夹中。在里面做类似的事情

synchronized

或者您可能需要用<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.web> <authorization> <deny users="?" /> </authorization> </system.web> </configuration> 标签包裹<authorization>标签。