网站配置

时间:2011-05-17 16:13:31

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

我(开发人员)和一位用户(DOMAIN_NAME \ USER_NAME)需要访问一个网站。

当我使用VS创建的“自动主机”在visual studio中开发网站时,web.config中的以下设置就足够了:

<authentication mode="Windows"/>
<authorization>
  <allow users="DOMAIN_NAME\my_name,DOMAIN_NAME\USER_NAME" />
  <deny users="*" />
</authorization>

但是当我在IIS中创建网站时,我收到错误:

  

访问被拒绝。

     

描述:访问提供此请求所需的资源时发生错误。可能未配置服务器以访问请求的URL。

     

错误消息401.2。:未授权:由于服务器配置,登录失败。验证您是否有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面。请与Web服务器的管理员联系以获取其他帮助。

需要为ApplicationPoolIdentity和网站本身设置什么设置?

非常感谢!

修改

我已将本地IIS的应用程序池配置为使用“LocalSystem”身份,网站 - 使用“传递”身份验证,并按照建议禁用“匿名身份验证”,启用“Windows身份验证” - 以及本地网站变得可行了。

但在本地我有Windows 7(IIS7),但在“TEST”环境(我需要部署网站)我有Windows 2008服务器,它没有启用“Windows身份验证”的选项... don不知道为什么......可能是为了更高级别的管理员,但我是管理员组的成员......

猜猜,我做错了什么......

请告知。

2 个答案:

答案 0 :(得分:43)

您的web.config已正确设置。此外,确保IIS站点/应用程序配置为:

  • 不允许匿名访问
  • 强制集成Windows身份验证
  • 将应用程序池保留为网络服务

<强> IIS7

<强> IIS6

找到下面的对话框
  • 控制面板/管理工具 - &gt; IIS管理器 - &gt;右键单击网站 - &gt;属性 - &gt;目录安全性

IIS 6 non anonymous with Windows Authentication

答案 1 :(得分:0)

也许有用:我开始收到401.2。 .ASPX应用程序中的错误(未对应用程序进行任何更改),在受保护的路径和表单验证中:

<authentication mode="Forms">
...
</authentication>
...
<location path="Admin">
    <system.web>
        <authorization>
            <allow roles="Admin,Client" />
            <deny users="*" />
        </authorization>
    </system.web>
</location>

在同一台计算机/ IIS上启动其他MVC应用程序之后。看来MVC改变了服务器的配置(路由,我相信)。在IIS(计算机/服务器/站点)中使用身份验证的任何操作均无济于事。但是Next有所帮助:我将Web应用程序的应用程序池从.Net 4.5更改为.Net 4.5 Classic。池托管管道模式的差异(集成/经典)。