我正在尝试用我的C#代码模拟用户在Windows资源管理器中打开文件共享。但它不工作!我的代码如下。
Impersonator i = new Impersonator();
using (new Impersonator("userA", "domainA", "pa$$word", LogonType.LOGON32_LOGON_INTERACTIVE, LogonProvider.LOGON32_PROVIDER_DEFAULT))
{
Process.Start(@"c:\windows\explorer.exe", @"\\fileshare\abc");
Response.Write("Impersonated User: " + WindowsIdentity.GetCurrent().Name + "<br />");
Response.Write("Logon User: " + Request.ServerVariables["LOGON_USER"] + "<br />");
Response.Write("Authenticated User: " + Request.ServerVariables["AUTH_USER"] + "<br />")
}
我正在使用该代码从此站点进行模拟:
http://platinumdogs.wordpress.com/2008/10/30/net-c-impersonation-with-network-credentials/
我在想这是因为Logon&amp;认证是我的Windows登录,因为我正在使用Windows身份验证?
我假冒的帐户是域帐户,并且拥有文件共享的完整帐户。
请帮忙
附加:
我也尝试过使用这段代码,但它没有用。我收到了“拒绝访问”错误
string target = "'_blank'";
string script = "window.open(" + @"'file://fileshare/abc'" + "," + target + "," + "'status=no, menubar=yes, toolbar=yes');";
Page.ClientScript.RegisterStartupScript(this.GetType(), "someUniqueId", script, true);
答案 0 :(得分:1)
您无法从asp.net工作进程启动资源管理器。 Explorer是一个GUI应用程序,需要WindowStation才能显示。
当你说“它不起作用”时,你的意思是当你进入网页时,资源管理器没有打开吗?