2012-04-06 81 views
0

我想在我的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); 
+0

你打算處理這個文件服務器端嗎? (在這種情況下,你應該使用System.IO)或客戶端(這是一種不尋常的情況,你會使用JScript和ActiveX對象,它不會在所有機器上運行,並會產生很多安全警告) – MatthewMartin 2012-04-06 18:57:39

+0

全部我想要做的是打開文件夾的窗口,以便他們可以將文件添加到文件夾 – 2012-04-06 19:09:09

+0

即使您可以禁用所有安全性以允許您的'window.open'工作,它不會打開資源管理器窗口,它會只需瀏覽你指定的文件夾,這樣你就可以在你的borwser中看到一個文件列表。而已。您無法將文件複製到它。 – 2012-04-06 19:32:02

回答

1

您無法從asp.net工作進程啓動資源管理器。 Explorer是一個需要顯示WindowStation的GUI應用程序。

當你說「它不工作」,你的意思是當你瀏覽網頁時瀏覽器不打開?

+0

好的。這就說得通了。我試圖使用JS來打開一個IE窗口,但這也不起作用。 – 2012-04-06 18:59:59

+0

@ user1034458 - 您必須認識到,您在瀏覽器中看到的內容與服務器上發生的情況之間存在根本差異。他們是分開的東西。如果您模擬服務器上的用戶,那麼在您的Web瀏覽器中不會執行任何操作。 – 2012-04-06 19:05:06

+0

我想要做的就是打開文件夾,並允許用戶放入文件。 – 2012-04-06 19:09:52

相關問題