2012-04-06 25 views
0

Windowsエクスプローラでファイル共有を開くためにC#コードでユーザーを偽装しようとしています。しかし、それは働いていません!私のコードは以下の通りです。私はこのサイトから偽装を行うためのコードを使用しています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認証を使用していますので、それは考えていますか?

私が偽装しているアカウントは、ドメインアカウントであり、ファイル共有に完全なアカウントを持っています。

ADDITIONALを助けてください:

また、私はこのコードを使用してみましたが、それはうまくいきませんでした。 "アクセス拒否"エラーが発生しました

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

+0

すべて私がしたいのは、フォルダにウィンドウを開いてフォルダにファイルを追加できるようにすることです。 –

+0

'window.open'が動作するようにすべてのセキュリティを無効にできたとしても、エクスプローラウィンドウは開きませんでした。あなたが指定したフォルダを参照するだけで、あなたの借り手にファイルのリストが表示されます。それでおしまい。ファイルをコピーすることはできませんでした。 –

答えて

1

asp.netワーカープロセスからエクスプローラを起動することはできません。エクスプローラは、WindowStationで表示する必要のあるGUIアプリケーションです。

「うまくいきません」と言えば、ウェブページにアクセスしたときにエクスプローラが開いていないということですか?

+0

それは理にかなっている。 JSを使ってIEのウィンドウを開こうとしましたが、うまくいきませんでした。 –

+0

@ user1034458 - ブラウザーに表示されるものとサーバーで行われるものには基本的な違いがあることに気づかなければなりません。彼らは別々のものです。サーバー上でユーザーを偽装すると、Webブラウザーでは何も行われません。 –

+0

私がやってみたいのは、フォルダを開いて、ファイルをドロップできるようにすることだけです。 –

関連する問題