我在ASP.NET MVC網站中使用Active Directory中的Windows身份驗證。我現在試圖部署該網站進行測試,但問題是我在登錄時會收到以下異常:用戶IIS登錄失敗APPPOOL WebExploit
無法打開登錄請求的數據庫「PrincipalServerDB」。登錄失敗。 用戶'IIS APPPOOL \ WebExploit'登錄失敗。
我按照這個教程部署到測試:https://docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/visual-studio-web-deployment/deploying-to-iis
而且我使用的身份驗證如下所述: http://tech.trailmax.info/2016/03/using-owin-and-active-directory-to-authenticate-users-in-asp-net-mvc-5-application/ 使用OWIN認證。
我意識到我的問題缺乏理解,但這是因爲我不明白髮生了什麼事情。我曾嘗試在這篇文章https://stackoverflow.com/a/7698316/4714502描述下列步驟,但我已經做了Grant.sql
腳本授予訪問權限如下:
IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
CREATE LOGIN [IIS APPPOOL\DefaultAppPool]
FROM WINDOWS WITH DEFAULT_DATABASE=[master],
DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [WebExploitUser]
FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
EXEC sp_addrolemember 'db_owner', 'WebExploitUser'
GO
在第一個教程,他們說:
當應用程序運行在開發計算機上的IIS中,應用程序使用默認應用程序池的憑據訪問數據庫。但是,默認情況下,應用程序池標識沒有打開數據庫的權限。所以你必須運行腳本來授予該權限。在本節中,您將創建稍後運行的腳本,以確保應用程序可以在IIS中運行時打開數據庫。
這意味着它是具有權利的應用程序?不是真正的用戶? 不知道如何解決此問題...
如果我查看SSMS,在我的PrincipalServerDB屬性中,授權顯示WebExploitUser
的定義。
這裏是我的IIS應用程序池:
'Démarré' 是指在法國開始。
可以在IIS檢查哪些用戶被用來運行應用程序池?它看起來像是'IIS APPPOOL \ WebExploit'。如果是這樣,那就是問題所在,因爲你已經給了IIS APPPOOL \ DefaultAppPool帳戶訪問數據庫的權限。如果沒有,還有其他的東西沒有正確配置。 –
@Jan_V我都在我的應用程序池中。我實際上已經嘗試使用「IIS APPPOOL \ DefaultAppPool」和「IIS APPPOOL \ WebExploit」運行授權腳本。我將在IIS –