Олицетворение не работает - Asp. Net приложение ядра 3.1 с Windows аутентификационным хостингом в IIS - PullRequest
1 голос
/ 04 апреля 2020

Я создал приложение 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?

...