データ更新のためのセキュリティ検証と投稿の作成
最終更新日: 2010年4月8日
適用対象: SharePoint Foundation 2010
セキュリティ上の理由から、Microsoft SharePoint Foundation は、データベース コンテンツの変更を目的とした Web アプリケーションからの投稿を、既定で許可していません。ただし、要求を出すページにセキュリティ検証が組み込まれている場合を除きます。
サイトまたはサイト コレクションのデータを更新する
要求を出すページにページ ディレクティブと FormDigest コントロールを追加することによって、単一サイトまたはサイト コレクションのデータを更新することができます。以下のディレクティブが Microsoft.SharePoint.WebControls 名前空間に登録されます。
<%@ Register
Tagprefix="SharePoint"
Namespace="Microsoft.SharePoint.WebControls"
Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
注意
現在の SharePoint Foundation 展開の PublicKeyToken 値は、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates\sts フォルダーの default.aspx ファイルから取得できます。または Windows エクスプローラーで、ローカル ドライブ:\WINDOWS|WINNT\assembly の Microsoft.SharePoint アセンブリに対して表示される情報から取得できます。
FormDigest コントロールを以下のようにフォーム内に組み込みます。
<form id="Form1" method="post" runat="server">
<SharePoint:FormDigest ID="MyFormDigest" runat="server"/>
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 282px;
POSITION: absolute; TOP: 282px" runat="server"
Text="Button"></asp:Button>
</form>
ASPX ページにこのコントロールを挿入することでセキュリティ検証、つまりメッセージ ダイジェストが生成され、ユーザーを騙してサーバーにデータを投稿させようとする攻撃を防ぐことができます。セキュリティ検証は、特定のユーザー、サイト、および期間限定で、設定可能な期間を経過すると期限切れになります。ユーザーがページを要求すると、サーバーはセキュリティ検証が挿入されたページを返します。ユーザーがそのフォームを送信すると、サーバーはセキュリティ検証が変更されていないかどうかを検証します。このコントロールの詳細については、FormDigest クラスを参照してください。