0

SharePoint リモート フォルダーにアクセスする必要がある ASP.NET MVC 3 を開発しました。

そのために、開発中、Visual Studio 開発サーバーを実行する前に、リモート フォルダーへのアクセスを試みます。次に、リモート リソースを表示する権限を持つユーザーの資格情報を紹介する必要があります。この後、次のコードを使用します。

string path = @"\\tests.sharepoint.es\folder1";
DirectoryInfo di = new DirectoryInfo(path);
DirectoryInfo[] dis = di.GetDirectories();

フォルダへのアクセスは成功です。ただし、IIS から Web アプリケーションを実行すると失敗し、次のエラーが発生します。

パス '\tests.sharepoint.es\folder1\' へのアクセスが拒否されました。

Visual Studio 開発サーバーを実行しているのと同じユーザーをアプリケーション プールに設定しても、引き続き失敗します。

World Wide Web Publish Service (W3SVC) を実行しているユーザーが SYSTEM (明らかにフォルダーへのアクセス許可を持っていないアカウント) であることを確認しましたが、これを変更することはできません。問題。

また、SPSecurity.RunWithElevatedPrivilegesの使用に関するいくつかの投稿を読みましたが、IIS サーバーに Sharepoint がインストールされていない (別のマシンにある) ため、使用できません。したがって、Microsoft.Sharepoint.dll を使用できません。私の知る限り。

更新: Windows エクスプローラーを使用してリソースにアクセスしようとすると、OS が NetBios ではなく WebDav を使用していることを確認しました。IIS はこのプロトコルを使用してリソースにアクセスできますか?

4

2 に答える 2

0

幸いなことに、アクセスの問題を解決する方法を見つけました。

この投稿で説明されているソリューションを使用しました。

私のコードは次のようです:

PinvokeWindowsNetworking.connectToRemote(@"\\tests.sharepoint.es\folder1", "domain\user", "password");
//manage files and folders of my remote resource
//...
PinvokeWindowsNetworking.disconnectRemote(@"\\tests.sharepoint.es\folder1");
于 2013-09-23T15:04:17.363 に答える