.net - web.config 授权拒绝未经授权

标签 .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。

最佳答案

我想您会发现,如果您将具有不同预期角色的不同网页放在不同的文件夹中,则处理 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>

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

关于.net - web.config 授权拒绝未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3874357/

相关文章:

c# - 如何使用 System.Random 获得高质量的归一化带符号随机 float ?

c# - 在 ajax 日历扩展器控件中禁用周末和国定假日

c# - 协方差和 IList

C# 使用 LINQ 对目录名称进行排序

.net - 为什么 .MaxStack 指令在 MSIL 代码中是可选的?

c# - 尝试在 ASP.NET 页面上显示 Crystal 报表时出错

c# - 跟踪代码随时间的变化

javascript - 在询问用户是否要离开之前检查 ASP 页面是否脏

asp.net - 关于asp.net mvc 2预览版的思考1

c# - TCP 客户端指导、重新连接功能等