Web アプリケーションで SharePoint API を使用してページの入力規則エラーを回避する
最終更新日: 2009年10月1日
適用対象: SharePoint Foundation 2010
SharePoint Foundation での Web アプリケーションは、アプリケーション プール ID で実行されます。セキュリティ上の理由から、SharePoint Foundation API のほとんどは、Web アプリケーションからアクセスされる場合に制限があります。そのため、これらの API では、さまざまなページ検証エラーがスローされる可能性があります。この問題を回避するには、次のように Web アプリケーションを更新します。
アプリケーションを更新する
ページ検証エラーを回避するために Web アプリケーションを更新するには、以下の手順を実行します。
1. SharePoint コンテキストで Web アプリケーションを実行する
このためには、目的の SharePoint サイトの _layouts ディレクトリ内に仮想ディレクトリを作成し、そのディレクトリで Web アプリケーションをホストします。
2. アプリケーション プールが統合されていることを確認する
Web アプリケーションが SharePoint サーバーの全体管理と同じアプリケーション プールで実行されていることを確認します。これにより、コンテンツ展開、ユーザー プロファイル管理など、SharePoint Foundation 管理機能にサーバーの全体管理のアプリケーション プールからアクセスできるようになります。
3. フォーム ダイジェスト コントロールを ASPX ページに追加する
上記の手順 1. と 2. が完了すると、ほとんどの API に Web アプリケーションからアクセスできます。ただし、一部の SharePoint Foundation API と機能では、さらに強力なセキュリティ検証が必要になる場合があります。上記手順を実装した後でもセキュリティ検証エラーが依然としてある場合、ASPX ページに SharePoint Foundation フォーム ダイジェスト Web コントロールを追加する必要があります。フォーム ダイジェスト コントロールは、SharePoint Foundation API にアクセスしようとする際に Web アプリケーションを検証します。そのため、Web アプリケーションは、セキュリティ保護されたアプリケーションと見なされ、SharePoint Foundation にアクセスできます。フォーム ダイジェスト Web コントロールを使用するには、SharePoint Foundation のタグ プレフィックスを登録し、ASPX ページにフォーム ダイジェスト コントロールを追加する必要があります。
次のコード サンプルは、タグ プリフィックスの登録方法を示したものです。
<%@ Register Tagprefix="SharePoint"
Namespace="Microsoft.SharePoint.WebControls"
Assembly="Microsoft.SharePoint
Version=14.0.0.0
Culture=neutral,
PublicKeyToken=71e9bce111e9429c" %>
ここで、SharePoint Foundation フォーム ダイジェスト コントロールをページに追加します。
<SharePoint:FormDigest ID="fd" runat="server" PageUri=""/>
フォーム ダイジェスト コントロールの PageURI プロパティをそのコントロールがあるページに設定する必要があります。設定しないと、Null オブジェクト リファレンス エラーが表示されます。