0

私は、ViewFormPagesLockDown 機能を使用して匿名ユーザーが標準のリスト フォームにアクセスできないようにする、一般向けの MOSS 2007 サイトに取り組んでいます。この機能が提供する追加のセキュリティを失いたくないのですが、匿名ユーザーがフォームにアクセスできるリストがいくつかあります。

リスト設定、リスト テンプレート、または特定のリストまたはフォームが SPBasePermissions.ViewFormPages を要求しないようにする機能コードでできることはありますか?

4

2 に答える 2

1

私はそれを回避する方法を見つけることができませんでした。LockDown機能のサポートは、フォームクラスに組み込まれているようです。代わりに、独自のListFormWebPartを使用して別のページを作成しました。以下は、匿名ユーザーがリストに新しいアイテムを追加できるようにする手順の概要を説明した、社内ブログのエントリを応用したものです。

[リスト設定]で、[詳細設定]に移動します。[読み取りアクセス]が[すべてのアイテム]に設定されていることを確認してください。リスト設定に戻り、このリストの権限を選択します。[アクション]>[権限の編集]を選択して、サイトからの継承を解除します。注:名前の左側にチェックボックスが表示されている場合、この手順はすでに実行されています。カスタム権限を設定したら、[設定]>[匿名アクセス]を選択します。[アイテムの追加]をオンにして、[OK]をクリックします。匿名アクセスを完了するには、[設定]> [詳細設定]に戻り、リセットして[読み取りアクセス]と[編集]アクセスの両方で[自分だけ]を選択し、[OK]をクリックします。

[サイトの操作]>[ページの作成]を使用して新しいページを作成します。サイトSharePointDesignerを開きます。新しく作成したページを右クリックして、[ページレイアウトから切り離す]を選択します。Webパーツゾーン内にカーソルを置き、[挿入]>[SharePointコントロール]>[カスタムリストフォーム]を選択します。適切なリストと新しいアイテムフォームを選択し、[OK]をクリックします。コードペインで、新しく作成されたDataFormWebPartのDataSourceModeをListItemからWebに変更します。ListItemのデフォルト設定のままにすると、匿名ユーザーは「アクセスが拒否されました。このアクションを実行したり、このリソースにアクセスしたりする権限がありません」というエラーが発生します。ページを保存してブラウザに表示します。

最良の結果を得るには、開発サーバーでのみSharePointDesignerを使用してください。WebPartを本番環境に移行するには、ブラウザで開発サーバーのページを開き、WebPartメニューから[エクスポート]を選択します。WebPartファイルを保存します。ブラウザで本番サーバーのページを開き、[サイトの操作]から[ページの編集]を選択します。ページツールバーのメニューから、[ページ]>[Webパーツの追加]>[インポート]を選択します。開発サーバーから保存されたWebPartファイルの場所を入力し、[アップロード]をクリックします。次に、インポートしたWebパーツを右側のツールペインから目的のWebパーツゾーンにドラッグします。ページを保存するには、[公開]をクリックします。

于 2010-03-03T14:03:08.230 に答える
1

古い質問ですが、これを行うために使用できる別のオプションを追加すると思いました。

解決策: Rich が言及したように、リストのパーミッションの継承を中断します。ViewFormPagesLockDown 機能をオフに切り替えます。
匿名ユーザーがリストにアクセスできるように設定します。ViewFormPagesLockDown 機能をオンに切り替えます。

匿名ユーザーは、リストのアプリケーション ページにのみアクセスできるようになりました。

理由: ViewFormPagesLockDown 機能は、「アプリケーション ページの表示」および「リモート インターフェイスの使用」権限を「制限付きアクセス」権限ロールから削除します。ただし、匿名ユーザーは、匿名アクセス オプションを切り替えるまで、そのロールへの変更を取得しません。これは、サイト レベルまたはリスト レベルで機能します。したがって、特定の Web またはリストにアプリケーション ページへの異なる匿名アクセスを持たせたい場合は、上記のソリューションを使用してそれを変更できます。

于 2012-08-01T18:48:42.553 に答える