1

私は、asp.net mvc3 で、展開ファイルをローカル ドライブからウィンドウ サーバー 2008 R2 サーバーの共有ドライブにコピーする小さなプロジェクトに取り組んでいます。WMI を使用して接続していますが、接続は成功しています。しかし、フォルダーを作成しようとすると、「ログオンに失敗しました: 不明なユーザー名またはパスワードが正しくありません」というメッセージが表示されます。サンプルコードは次のとおりです。

bool isConnected = false;
            options.Username = user.Name.Trim();
            options.Password = user.password.Trim();
            mScope = new ManagementScope("\\\\xxx.xxx.xxx.xxx\\root\\cimv2", options);
            mScope.Connect();
            if (mScope.IsConnected == true)
            {
               //I've gotten to this point. Then, the code below throw the exception
                Directory.CreateDirectory(@"\\\\xxx.xxx.xxx.xxx\Tester\shareFile.txt");
                isConnected = true;
            }

私は何をしているのか知りたいですか?それは正しい方法ですか?

4

1 に答える 1

3

これは正しい方法ですが、ディレクトリを作成するためにリモート コンピューターに渡されるのは、アクセスしようとしている現在のユーザーになります。この時点での管理スコープは、Directory.CreateDirectory とは関係ありません。これらは2つの異なる「世界」です。ManagementScope に資格情報を与えますが、これは Directory.CreateDirectory には影響しません。なりすましを使用して、やりたいことを実行できます。

.NET で偽装を行うにはどうすればよいですか?

ただし、これを ASP.NET/MVC で行っているのか、別のプラットフォームで行っているのかは不明です。あなたのタグは ASP.NET MVC を示していますが、主な質問ではありません。

ASP.NET/MVC を使用している場合は、アプリ プールの資格情報を使用してそのようなアクションを実行していることに注意してください。

于 2013-11-05T14:47:41.460 に答える