我想在我的C#代碼中模擬用戶以在Windows資源管理器中打開文件共享。但它不工作!我的代碼如下。ASP.NET模擬打開文件共享
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/
我想這是因爲登錄&驗證的是我的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);
你打算處理這個文件服務器端嗎? (在這種情況下,你應該使用System.IO)或客戶端(這是一種不尋常的情況,你會使用JScript和ActiveX對象,它不會在所有機器上運行,並會產生很多安全警告) – MatthewMartin 2012-04-06 18:57:39
全部我想要做的是打開文件夾的窗口,以便他們可以將文件添加到文件夾 – 2012-04-06 19:09:09
即使您可以禁用所有安全性以允許您的'window.open'工作,它不會打開資源管理器窗口,它會只需瀏覽你指定的文件夾,這樣你就可以在你的borwser中看到一個文件列表。而已。您無法將文件複製到它。 – 2012-04-06 19:32:02