Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在获取当前模拟用户的用户名_C#_Asp.net_Impersonation - Fatal编程技术网

C# 正在获取当前模拟用户的用户名

C# 正在获取当前模拟用户的用户名,c#,asp.net,impersonation,C#,Asp.net,Impersonation,我试图在我的asp.net c#网站中模拟一个远程active directory帐户,该帐户托管在非域计算机(或其他域)上。我已经让它工作了: IntPtr token = IntPtr.Zero; LogonUser( "username", "ad.some.other.domain.com", "password", LOGON_TYPE_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50, ref token)) { WindowsImperson

我试图在我的asp.net c#网站中模拟一个远程active directory帐户,该帐户托管在非域计算机(或其他域)上。我已经让它工作了:

IntPtr token = IntPtr.Zero;
LogonUser( "username", "ad.some.other.domain.com", "password", LOGON_TYPE_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50, ref token))
{
   WindowsImpersonationContext wic; 
   wic = WindowsIdentity.Impersonate(token);
   //run code under the impersonated user.

   //System.Environment.UserName returns windows user (not impersonated one)
   //WindowsIdentity.GetCurrent() returns windows user (not impersonated one)
 }
我的代码运行,但无法获取模拟用户的“用户名”。我理解这是因为我使用LOGON\u TYPE\u NEW\u凭据作为我的登录类型,从技术上讲,它不会模拟,而是使用令牌在模拟帐户下运行网络连接。这很好,但理想情况下,我的站点将在模拟用户下运行,因此我可以获得用户名,以及可能的其他功能。基本上,我希望以模拟用户的身份与站点交互,而不仅仅是以模拟用户的身份运行网络连接。我已经尝试将LOGON32\u LOGON\u INTERACTIVE作为登录类型,但这不允许我验证在无域计算机上运行的站点上的域帐户


有什么我可以做的,以便我可以完全模拟(获取用户名等)并使用active directory从非域计算机进行身份验证吗?

如果需要ASP.Net或MVC,我不确定您使用的是哪种网站

<identity impersonate="true" />


谢谢,是的,我的web.config文件中已经有了。我的网站是asp.net(没有mvc或项目只是标准网站)。