WebアプリケーションからSharePoint2010ドキュメントライブラリにアクセスすることはできますか?もしそうなら、あなたは私を正しい方向に向けることができますか?
ドキュメントのバージョン管理、チェックイン/チェックアウト、ダウンロード/アップロード、検索を可能にするアプリケーションを作成する必要があります。
これまで、前述のすべての機能を実行できる基本的なWindowsフォームアプリケーションを作成しましたが、Webアプリケーションからそれらにアクセスする必要があります。
WebアプリケーションからSharePoint2010ドキュメントライブラリにアクセスすることはできますか?もしそうなら、あなたは私を正しい方向に向けることができますか?
ドキュメントのバージョン管理、チェックイン/チェックアウト、ダウンロード/アップロード、検索を可能にするアプリケーションを作成する必要があります。
これまで、前述のすべての機能を実行できる基本的なWindowsフォームアプリケーションを作成しましたが、Webアプリケーションからそれらにアクセスする必要があります。
Windowsフォームアプリケーションから、管理対象クライアントオブジェクトモデルを使用してSharePointドキュメントライブラリなどにアクセスできます。詳細については、次のリンクを参照してください。
http://msdn.microsoft.com/en-us/library/ee857094(v=office.14).aspx
まず、Webアプリケーションに公開する内容を確認する必要があります。このWebアプリケーションは、(インターネットを介した)公開アプリケーションになりますか?または、内部でのみ使用されますか。
内部でのみ使用される場合は、WebアプリケーションがSharePointの既定のWebサービスにアクセスでき、このサービスを使用してドキュメントライブラリにクエリを実行できることを確認します。この方法の例は、次の場所にあります。SharePointWebサービスを使用したドキュメントライブラリの探索
公開されているWebサービスの場合は、必要な機能の量を確認する必要があります。これは、SharePointサービスもインターネットに公開する必要があることを意味するためです。別のオプションは、必要な機能を実装し、そのサービスを公開する独自のサービスを作成することです。これにより、セキュリティリスクが低下し、Windowsフォームアプリケーションで使用したコードの一部を再利用して、サービスに移動できる可能性があります。
まず、Microsoft.SharePoint.dllへの参照を追加する必要があります。
ドキュメントライブラリ内のアイテムにアクセスする方法のサンプルコードは次のとおりです。
using (SPSite site = new SPSite("SiteUrl"))
{
using (SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
//documentCategories is list of doc library names on SPSite, so catName could be something like "Invoices"
foreach (string catName in documentCategories)
{
SPFolder folder = GetFolder(web, catName, processInstanceId, false);
if (folder.Exists)
{
//handle specific document...
foreach (SPFile file in folder.Files)
{
}
}
}
web.Close();
}
site.Close();
}
さて、これはあなたが始めるための基本です。実際のユーザーの知識を使用してSPSiteにアクセスするには、Webページ内でWindows認証と偽装を有効にする必要があることに注意してください。または、特定のユーザーを偽装することもできますが、これは良い習慣ではありません。
技術の詳細については、以下をご覧ください。