1

ASP .NETMVC3Webアプリケーション内でActiveDirectoryによる認証を使用しています。

ビューにレンダリングされるコンポーネントを制御したい。私が検討しているオプションは、ログインしたユーザーがコントローラーからの一部であるグループを渡し、ヘルパーオブジェクトを使用して、ユーザーが必要なグループの一部であるかどうかを確認することです。これはこれを達成するための最良の方法ですか?もしそうなら、私はどのようにコントローラー部分を達成しますか?

ありがとう。

4

2 に答える 2

1

これは、ページにリンクされた正しいモデル(ドメインのクラスではなく、ビューモデル)を使用する場合に実現できます。このアプローチに従う場合、ビューモデルには、ビューに必要なすべての情報が含まれている必要があります。ビューでは、現在のユーザーロールに基づいてどのコントロールを表示するかを知る必要があるため、次のようにビューモデルの各コントロールのプロパティを作成します。

public class MyViewModel
{
   public bool ShowMycontrol1 { get; set; }
}

コントローラで現在のユーザーロールを使用してこの「フラグ」を設定し、最後にビューでこれらのプロパティをチェックして、必要なコントロールを表示または非表示にします

これはこれを達成するための1つの方法にすぎません。もっとたくさんあると確信しています

于 2012-06-20T09:15:15.360 に答える
0

拡張メソッドを書くことができます。ユーザーが管理者であるかどうかを確認したいとします。したがって、このような拡張メソッドを使用してこれを行います。

public static class AuthHelper
{
    public static bool IsUserAdmin(this HtmlHelper helper)
    {
        return helper.ViewContext.HttpContext.User.IsInRole("Administrator");
    }
}

これがお役に立てば幸いです。

于 2012-06-20T09:20:38.293 に答える