ASP .NETMVC3Webアプリケーション内でActiveDirectoryによる認証を使用しています。
ビューにレンダリングされるコンポーネントを制御したい。私が検討しているオプションは、ログインしたユーザーがコントローラーからの一部であるグループを渡し、ヘルパーオブジェクトを使用して、ユーザーが必要なグループの一部であるかどうかを確認することです。これはこれを達成するための最良の方法ですか?もしそうなら、私はどのようにコントローラー部分を達成しますか?
ありがとう。
ASP .NETMVC3Webアプリケーション内でActiveDirectoryによる認証を使用しています。
ビューにレンダリングされるコンポーネントを制御したい。私が検討しているオプションは、ログインしたユーザーがコントローラーからの一部であるグループを渡し、ヘルパーオブジェクトを使用して、ユーザーが必要なグループの一部であるかどうかを確認することです。これはこれを達成するための最良の方法ですか?もしそうなら、私はどのようにコントローラー部分を達成しますか?
ありがとう。
これは、ページにリンクされた正しいモデル(ドメインのクラスではなく、ビューモデル)を使用する場合に実現できます。このアプローチに従う場合、ビューモデルには、ビューに必要なすべての情報が含まれている必要があります。ビューでは、現在のユーザーロールに基づいてどのコントロールを表示するかを知る必要があるため、次のようにビューモデルの各コントロールのプロパティを作成します。
public class MyViewModel
{
public bool ShowMycontrol1 { get; set; }
}
コントローラで現在のユーザーロールを使用してこの「フラグ」を設定し、最後にビューでこれらのプロパティをチェックして、必要なコントロールを表示または非表示にします
これはこれを達成するための1つの方法にすぎません。もっとたくさんあると確信しています
拡張メソッドを書くことができます。ユーザーが管理者であるかどうかを確認したいとします。したがって、このような拡張メソッドを使用してこれを行います。
public static class AuthHelper
{
public static bool IsUserAdmin(this HtmlHelper helper)
{
return helper.ViewContext.HttpContext.User.IsInRole("Administrator");
}
}
これがお役に立てば幸いです。