2012-10-05 50 views
0

我有一個ASP.NET動態數據站點,應該只能訪問管理員當前登錄和域。我希望網站能夠告訴用戶是基於他們的登錄名,並允許或拒絕訪問,而不會對憑證提出質疑。由於動態數據站點的性質,我想確定沒有其他人在他們的方式中找到他們的方式,所以我想在IIS中管理身份驗證和授權,而不是在web.config中。但不管我做什麼,它甚至以管理員的身份拒絕訪問。Windows身份驗證IIS7

在64位Windows Server 2008 R2 Standard機器上使用IIS7。點擊該網站並進入身份驗證時,我禁用了除Windows之外的所有模式。

所有三個可用的提供者按以下順序啓用:

Negotiate:Kerberos 
Negotiate 
NTLM 

在授權,我添加了一個拒絕規則,禁止匿名用戶,然後讓所有的用戶。最終會改變,讓角色管理員,但我可以做到這一點,一旦我得到這個工作。

我錯過了什麼?如果重要,則網頁服務器,域控制器和頁面所在的文件服務器都位於同一個域中。

回答

1

您可能需要使用此代碼小片斷:

​​

這將返回所有組當前的Windows用戶的一部分,這樣你可以檢查管理組是在數組列表只是重定向他們,如果沒有。

因此,放棄其他訪問拒絕/允許並使用它們是否在管理組中以確定訪問權限。

您將需要確保以下是在您的配置文件:

<system.webServer> 
...etc 
    <security> 
...etc 
    <authentication> 
     <windowsAuthentication enabled="true" /> 
    </authentication> 
...etc 
    </security> 
...etc 
</system.webServer> 
+0

所以你建議我做的事情在Web應用程序的配置,而不是IIS?我可以不做我想在IIS中做什麼?代碼片段到底在哪裏? Application.Start在global.asax中? – jmease

+0

我的最終解決方案有點不同,但是源於此。我回到了IIS中的匿名訪問,在web配置文件中放入,然後在授權中添加了我的允許和拒絕規則,僅允許屬於管理員組的所有用戶登錄並阻止所有其他用戶。 – jmease