1

ユーザーが実行できるアクションと実行できないアクションを定義する一連のユーザーロールをもたらす JSON があります。

JSON がクライアント側に読み込まれます。クライアント側ではなくサーバー側のコードを使用してこのページの要素を非表示にしたいのですが、このアプローチはより安全でハッキングされにくいためです。

//.Net MVC Code
if (!userCanDelete){
    //don't print the selector to the page
}

.Net MVC 2でそれを行うことは可能ですか?

4

1 に答える 1

2

カスタム HTML ヘルパーを使用して、アプリで同じことを行います。

個人的には、ログイン中に特定の人や特定のアクションに対して特定の権利を取得します。

JSON からこの権限をサーバー側で取得します (より安全です! )。

この権限をセッションに保存し、カスタム ヘルパーで使用します。

public static class HtmlHelperCustom
{
    public static bool IsAccessibleToUser(this HtmlHelper helper, String element)
    {
        var user = (UserModel)HttpContext.Current.Session["currentUser"];

        return user.rights.Contains(element);
    }
}

次に、ビューで、次の要素を使用してヘルパーを呼び出します。

@{ 
    if (Html.IsAccessibleToUser("urlUpdate"))
    {
        <a href="@Html.DisplayFor(modelItem => item.urlUpdate)" target="_blank">
            <i class="icon-wrench" title="update">&nbsp;</i>
        </a>
    }
}

JSON サーバーサイドを取得するか、私のソリューションを少し変更する必要があります。

于 2012-07-25T21:24:29.410 に答える