2013-04-22 63 views
3

我有一個使用Active Directory授權的Web項目(所有標有AuthorizeAttribute的控制器)。在web.config中我有以下認證部分:Active Directory授權:IIS與Visual Studio Dev服務器

<authentication mode="Windows" /> 
<authorization> 
    <deny users="?" /> 
</authorization> 

的問題是: 當我的Visual Studio開發服務器都運行在項目進展很好,它會彈出確認窗口,輸入登錄/密碼,我可以看到所有的網站後內容。

但是,當我嘗試在IIS(7.5)下運行它時,授權窗口仍然彈出,但登錄名/密碼總是不正確的(看起來像無法訪問AD)。 網站被配置爲使用Windows授權。應用程序池使用我的Windows登錄名/密碼運行。我錯過了什麼?

+0

您是否在應用程序中使用模擬? – 2013-04-26 13:32:30

+0

你在同一臺機器上或某個服務器上運行IIS嗎? – Luca 2013-04-29 14:30:53

回答

1

如果您的主機頭文件指向127.0.0.1,則可能是身份驗證回送檢查。

如果是這樣,答案已經在why does windows authentication/impersonation fail on asp.net application with iis 7.5/windows 7 /詳細說明。簡而言之,打開註冊表編輯器,然後向HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa添加一個DWORD DisableLoopbackCheck = 1。

+0

太棒了!它現在有效,非常感謝! – Sergio 2013-04-30 07:39:20

1

我有同樣的問題,以下解決我的問題:

  1. 選擇網站
  2. 選擇 「特性查看」。
  3. 打開「驗證」部分。 注意:我假設您的網站已啓用Windows身份驗證,如上所述。
  4. 選擇 「Windows身份驗證
  5. 在右側 「操作」 部分,單擊供應商。
  6. 現在從「提供商」彈出菜單中選擇「協商」和刪除它。
  7. 刷新網站&運行

請讓我知道它是否適合你。