Я создал приложение Blazor Server (. Net core 3.1). Приложение использует Windows аутентификацию. Приложению потребуется доступ к некоторым Windows службам, таким как общий доступ к файлам и базе данных с интегрированной безопасностью и т. Д. 1019 *. Таким образом, он имеет следующий код олицетворения:
var identity = await IdentityProvider.GetIdentityAsync();
if (identity.IsAuthenticated && identity is WindowsIdentity wid)
{
return WindowsIdentity.RunImpersonated(wid.AccessToken, () =>
{
Fun1(....); // Should be called using the authentication of logged in user
});
Fun1()
должен вызываться с использованием идентификатора Windows пользователей, которые используют приложение, а не учетной записи, которая используется для запуска веб-сайта ,
Например, идентификатор пула приложений для моего веб-сайта - MyDomain\UserX
. И когда пользователь MyDomain\UserY
использует веб-сайт. Я хочу, чтобы функция Fun1()
выдавалась за MyDomain\UserY
вместо MyDomain\UserX
.
Я создал веб-сайт на IIS, опубликовал код, отключил анонимную проверку подлинности и включил Windows проверку подлинности. Однако функция Fun1()
все еще вызывается с использованием идентификатора в пуле приложений? Нужно ли менять какие-либо настройки в Active Directory?