IIS忽略web.config中的授权

时间:2010-09-02 05:48:03

标签: asp.net iis authorization

我在使用Windows身份验证和web.config中的authorization-tag为我的asp.net应用程序出了问题。当我在IIS(IIS 6和IIS 7中)中托管应用程序时,将忽略authorization-tag。当我在visual studio 2010附带的asp.net开发服务器中运行应用程序时,它的工作非常完美。

为什么它在IIS中不起作用?以及如何解决?

    <system.web>
           <identity impersonate="true" />
           <authentication mode="Windows" />
           <authorization>
                <deny users="*"/>
           </authorization>       
    </system.web>

1 个答案:

答案 0 :(得分:2)

没有看到web.config,听起来你没有配置IIS。当您使用Windows身份验证时,ASP.NET期望的是Web服务器进行身份验证 - 因此您必须对其进行配置才能执行此操作,只需将其放入web.config是不够的。

对于IIS6:

  1. 在IIS管理器中,双击 本地电脑;右键单击Web 站点文件夹,一个单独的网站 文件夹,虚拟目录或 文件;然后单击“属性”。
  2. 单击目录安全性或文件 安全选项卡,然后,在 身份验证和访问控制 部分,单击编辑。
  3. 在经过身份验证的访问部分中, 选择Windows集成 身份验证复选框。
  4. 单击“确定”两次。
  5. 对于IIS7:

    1. 打开IIS管理器并导航到要管理的级别。有关打开IIS管理器的信息,请参阅打开IIS管理器(IIS 7)。有关在UI中导航到位置的信息,请参阅IIS管理器(IIS 7)中的导航。
    2. 在“功能视图”中,双击“身份验证”。
    3. 在“身份验证”页面上,选择“Windows身份验证”。
    4. 在“操作”窗格中,单击“启用”以使用Windows身份验证。