使用NEW_CREDENTIALS时能否获得模拟用户

时间:2019-02-11 13:39:16

标签: c# asp.net windows

在我的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可以检查并确保模拟的用户实际上已被模拟?

0 个答案:

没有答案