В моем проекте WebApi я выдаю себя за пользователя домена и все еще получаю Access Denied
.Код олицетворения действительно прост:
SafeAccessTokenHandle token;
bool returnValue = LogonUser(usernmae, domain, password, (int)logonType, (int)logonProvider, out token);
if (returnValue == false)
{
int ret = Marshal.GetLastWin32Error();
throw new Win32Exception(ret);
}
using (token)
{
WindowsIdentity.RunImpersonated(token, () => actionToExecute());
}
logonType
- это NEW_CREDENTIALS, а logonProvider
- это WINNT50.Я читал здесь и в других местах, что при использовании этого типа входа в систему маркер будет выдаваться только за олицетворенного пользователя, а поток все еще работает в контексте основной идентификации.
Я использую Process Monitor
, чтобы проверить, почему япо-прежнему получить доступ запрещен.И я до сих пор вижу, что пользователь, имеющий доступ к общему сетевому ресурсу, IIS_APPPOOL\websitename
.
Есть ли какой-нибудь API, чтобы проверить и убедиться, что на самом деле выдает себя за другого пользователя?