2012-02-08 9 views
0

私はASP.MVCアプリケーションを作成していますが、ページへのアクセスを制御するために認可フィルタをコトローラで使用できますが、部分ビュー内で保護されたデータへのアクセスを制御したい場合は、 。ASP.MVCパーミッション:部分コンテンツを制御する方法はありますか?

私が読んだことから、ASP.MVCではこのレベルの粒度を提供していません。

これは、ユーザー権限を属性としてモデルに追加してから、シンプルなファクトリを使用してビューをレンダリングするか空白のビューを返すかを判断するだけで簡単に思えます。

これまでのところ私は

れるrenderPartial(PartialFactory.IsAllowedToRender( "partialName"、Model.Security)、モデル)

と工場を持っているいずれかの要求されたビューまたは空白部分図を返します。

は、誰もが前にこれを試してみましたか誰も

答えて

0

我々はHtmlHelperのための拡張メソッドと同様に行っている(余分な努力から離れて)これを行わない理由を知っている持っています。

RenderPartialIfExistsなど。あなたが何か頻繁に必要としていることがあれば、これをするのは恥ずべきことではありません。

あなたは作品を持っているだけでなく、読んでもクリーンではないので、拡張機能を使わずにそれをやっています。また、HttpContext.Current.Itemsにセキュリティ情報を追加することを検討してください。そうすることで、モデルに常に渡す必要はなく、ヘルパー、コントローラなどを利用する必要があるすべてのものが簡単にアクセスできますそれはリクエストの始めに取得するだけです。

+0

ありがとう、モデルを清潔に保つこと – user1197563