Iis-6

ASP.Net 應用程序中的 IIS 6 Windows 身份驗證失敗

  • January 16, 2011

我正在嘗試在 IIS6 網路伺服器上安裝 ASP.Net 應用程序。該站點要求使用者使用 Windows 進行身份驗證,這適用於同一伺服器上的其他幾個應用程序。

在 IIS 中,我啟用了匿名訪問和 Windows 身份驗證。

在 web.config 中,身份驗證設置為:

<authentication mode="Windows"/>

和授權…:

<authorization>
 <allow roles="Users"/>
 <deny users="*"/>
</authorization>

IE。允許角色“使用者”中的所有使用者並拒絕其他所有人。這是在同一台伺服器上與其他幾個應用程序一起使用的方法。

如果我執行該站點,系統會提示我輸入使用者名和密碼。

如果我刪除該行:

 <deny users="*"/>

我可以訪問該站點並且一切正常 - 但使用者憑據未傳遞到該站點(Page.User.Identity.Name 在 ASP.Net 中返回一個空白字元串)。

該站點與伺服器上的其他工作站點具有相同(繼承)的文件權限。

此站點與其他工作站點之間身份驗證/授權的唯一區別是,它執行 Asp.Net 4(但伺服器上還有其他工作的 asp.net 4 站點)。

我在這裡想念什麼?

我應該去哪裡看?

如果站點要求使用者進行身份驗證,那麼您應該刪除匿名訪問並只允許集成 Windows。Page.User.Identity.Name 返回空白,因為在集成的 Windows 上使用匿名身份驗證。

如果這是一個域,則允許角色應採用域\安全組的形式。“?” 在拒絕使用者通常足以阻止匿名訪問。

<identity impersonate="true" />如果您的程式碼需要訪問需要以使用您的應用程序的使用者身份進行身份驗證的資源,這可能會很有用。

引用自:https://serverfault.com/questions/213683