簡體   English   中英

Windows身份驗證IIS7

[英]Windows Authentication IIS7

我有一個ASP.NET動態數據站點,該站點只能由當前登錄並在域上的管理員訪問。 我希望該網站能夠根據他們的登錄信息來確定用戶身份,並允許或拒絕訪問而不會挑戰憑據。 由於動態數據網站的性質,我想確定沒有其他人找到他們的方式,因此我想在IIS中而非Web.config中管理身份驗證和授權。 但是無論我做什么,它都以管理員身份拒絕訪問。

在64位Windows Server 2008 R2 Standard計算機上使用IIS7。 當單擊該站點並進入“身份驗證”時,我已禁用Windows以外的所有模式。

所有三個可用的提供程序都按以下順序啟用:

Negotiate:Kerberos
Negotiate
NTLM

在授權中,我添加了一個拒絕規則來拒絕匿名用戶,然后允許所有用戶。 最終,它將進行更改,以允許角色管理員使用,但是一旦完成此工作,我就可以執行此操作。

我想念什么? 如果重要的話,頁面所在的Web服務器,域控制器和文件服務器都位於同一域中。

您可能需要使用以下代碼片段:

Public Function GetGroups() As ArrayList
    Dim groups As New ArrayList()
    For Each group As System.Security.Principal.IdentityReference In System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups
        groups.Add(group.Translate(GetType(System.Security.Principal.NTAccount)).ToString())
    Next
    Return groups
End Function

這將返回當前Windows用戶所屬的所有組,這樣您就可以檢查admin組是否在數組列表中,如果沒有,則將其重定向。

因此,請刪除其他訪問拒絕/允許並使用它們是否在管理員組中來確定訪問權限。

您需要確保配置文件中包含以下內容:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM