J'utilise l'authentification Windows sur Active Directory dans mon site Web ASP.NET MVC. J'essaie maintenant de déployer le site à tester, mais le problème est que je reçois toujours l'exception suivante à la connexion:Échec de la connexion pour l'utilisateur IIS APPPOOL WebExploit
Impossible d'ouvrir la base de données "PrincipalServerDB" demandée par le login. La connexion a échoué. La connexion a échoué pour l'utilisateur 'IIS APPPOOL \ WebExploit'.
J'ai suivi ce tutoriel pour déployer à tester: https://docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/visual-studio-web-deployment/deploying-to-iis
Et j'utiliser l'authentification comme décrit ici: http://tech.trailmax.info/2016/03/using-owin-and-active-directory-to-authenticate-users-in-asp-net-mvc-5-application/ qui utilise l'authentification OWIN. Je suis conscient que ma question manque de compréhension, mais c'est parce que je ne comprends pas ce qui se passe. Je l'ai essayé en suivant les étapes décrites dans ce poste https://stackoverflow.com/a/7698316/4714502 mais je l'avais déjà fait un script Grant.sql
d'accorder l'accès comme suit:
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
Dans le premier tutoriel, ils disent:
Lors de l'exécution de l'application dans IIS sur votre ordinateur de développement, l'application accède à la base de données en utilisant les informations d'identification du pool d'applications par défaut. Cependant, par défaut, l'identité du pool d'applications n'a pas l'autorisation d'ouvrir les bases de données. Vous devez donc exécuter un script pour accorder cette autorisation. Dans cette section, vous allez créer le script que vous exécuterez plus tard pour vous assurer que l'application peut ouvrir les bases de données lorsqu'elle s'exécute dans IIS.
Cela signifie que c'est l'application qui a les droits non? Pas l'utilisateur réel? Ne sait pas comment résoudre ce problème ...
Si je regarde dans SSMS, dans mes propriétés PrincipalServerDB, les autorisations montrent WebExploitUser
comme défini.
Voici mon pool d'applications dans IIS:
signifie 'Demarré' a commencé en français.
Pouvez-vous vérifier dans IIS quel utilisateur est utilisé pour exécuter le pool d'applications? On dirait que c'est le 'IIS APPPOOL \ WebExploit'. Si c'est le cas, c'est le problème, car vous avez donné l'accès au compte IIS APPPOOL \ DefaultAppPool' à la base de données. Sinon, il y a quelque chose d'autre qui n'est pas configuré correctement. –
@Jan_V J'ai les deux dans ma piscine d'applications. J'ai effectivement essayé d'exécuter le script de subvention avec IIS APPPOOL \ DefaultAppPool' et 'IIS APPPOOL \ WebExploit'. Je vais ajouter une capture d'écran de mon pool d'applications dans IIS –