2011-11-09 4 views
0

私は解決策を見つけるためにインターネット上のすべての記事をチェックしましたが、この問題を解決できないため、コミュニティからの助けを求めています。異なるユーザーIDを持つネットワークロケーションにログインしてください。

問題: ファイルをコピーし、C#.netで設計されたツールを使用して、異なるユーザー名とWindowsログイン資格情報を使用するネットワークロケーションから統合します。

ネットワークパスが ユーザーID = \\ company.city.comのようになります。differentfromウィンドウがIDにログイン

私は一度だけこの場所にログインする必要がありますし、それは私が私がしたいログオフするまでログインしたままになります毎回ファイルをコピーする前にC#コードでログインしてください。

このコードを使用しようとしましたが、うまくいかないためにエラーが発生し、なぜネットワークパスがweblocationとして考慮されているのかわかりません。

 WebRequest request = (WebRequest)WebRequest.Create("\\\\company.city.com"); 
    \\or WebRequest request = (WebRequest)WebRequest.Create("\\\\company.city.com\\folder"); 
    request.Method = request.Method.Clone; 

    request.Credentials = new NetworkCredential("user_id","password"); 

    WebResponse response = (WebResponse)request.GetResponse(); 

    Stream responseStream = response.GetResponseStream(); 
    StreamReader reader = new StreamReader(responseStream); 
    Console.WriteLine(reader.ReadToEnd()); 
+0

上記のコード例の中で、特定の行が失敗するのはどれですか?エラーは何ですか? – jp2code

+0

は、Console.WriteLine(reader.ReadToEnd());行に失敗します。 – user973842

+0

正しいユーザーの資格情報でも「アクセスが拒否されました」と表示される – user973842

答えて

0

これはWebサーバーかフォルダですか?コードを見ると、これはUNCパス経由のフォルダであり、Webサーバーによって提供されるものではないと仮定しています。その場合、接続しようとする方法は、ネットワーク資格情報を使用して安全なWebページを呼び出す場合と同じです。同じように動作するように見えるかもしれませんが、ネットワーク上で認証して共有にアクセスし、WebサイトやWebサービスでネットワーク資格情報を投げることはまったく別の機能です。

Windowsのなりすましで、ソケット通信に資格情報を追加しないでください。それが私のGoogleの旅を始める場所です。私は.NET 4.0でうんざりしていませんでしたが、以前のバージョンではこれはいくつかのネイティブウィンドウライブラリでP/Invokeを意味していました。認証と承認の問題を解決したら、ファイルを取得するのがずっと簡単になります。

+0

適切なユーザー資格情報を持っていてもアクセスが拒否されるというエラーが表示されます – user973842

+0

プログラムではない方法でファイルをプルしたい場合は、あなたはまだアクセスが拒否されていますか?依然として問題がある場合は、おそらくドメインの信頼の問題があります。問題でなければ、あなたがプログラミングしている方法がアクセスではなくコアの問題です。最初にそれを決定しなければなりません。 –

+0

プログラマチックではありません。 – user973842

関連する問題