2009-08-14 4 views
0

私はプログラムの魔法使いを開発するネットワークコンピュータの魔法使いに格納されているファイルにいくつかのデータを書く必要がありますパスワードで保護されています。 私はこのようにしています - cmdとの接続を開いてからデータを書き込みます。スマートな方法でパスワードで保護されたローカルネットワークパスへの接続を開くには? (Whith C#)

static bool ConnectToSrv() 
    { 
     String myUser = "domain.local\\user"; 
     String myPass = "pwd"; 
     String cmdString = "net use \\\\otherPC\\folder\\ /user:" + myUser + " " + myPass; 
     try 
     { 
      ManagementClass processClass = new ManagementClass("Win32_Process"); 
      object[] methodArgs = { cmdString, null, null, 0 }; 
      object result = processClass.InvokeMethod("Create", methodArgs); 
      return true; 
     } 
     catch (System.Exception error) 
     { 
      return false; 
     } 

    } 

public void writeDate(string data){ } 

私はより良い方法で必要があると信じています。私は.NETの方法を意味します。 誰かがそれを行う方法を知っていますか? :)
ありがとう

答えて

0

コードでハッシュ化して暗号化されたパスワードを設定ファイルに保存してから、configの値を読み取ってから使用してください。ここでそれを行う方法についての参考文献がたくさんあるので、検索をしてください。

+0

パスワードの安全性から取られたコードは、問題ではありません。これは私がどのようにそれを行うかの単なる例です。 – lfx

0

偽装を試してください。あなたはこのapiにアクセスする必要があります

次に、ユーザー名/パスワードを使用して、ユーザーに必要な資格情報を偽装し、ネットワークにアクセスします。

private const int LOGON_TYPE_INTERACTIVE = 2; 
private const int LOGON_TYPE_PROVIDER_DEFAULT = 0; 

IntPtr accessToken = IntPtr.Zero; 
if (LogonUser(userName, domain, password, LOGON_TYPE_INTERACTIVE, LOGON_TYPE_PROVIDER_DEFAULT, ref accessToken)) 
{ 
    WindowsIdentity identity = new WindowsIdentity(accessToken); 
    WindowsImpersonationContext context = identity.Impersonate(); 

    // Access network here .... 
}   

のおかげとthis blog

+0

それはそういうものです。私はいつもエラーを受け取ります。間違ったユーザーやパスワードです。 (私はブログからプログラムを試しました) – lfx

関連する問題