-1

MVCコントローラーをで保護していAuthorizeAttributesます。それらのクラスを独自にインスタンス化する方法はありますか?

現在、私には同じことAuthorizedAdminをするIsAdminクラスがあります。したがって、理想的にはクラスIsAdminを使用する必要があります。AuthorizedAdminそれを行う方法はありますか?

AuthorizedAdminは本当に単純なので、私は尋ねています:

[AttributeUsage(AttributeTargets.All, Inherited = true, AllowMultiple = true)]
public class AuthorizedAdmin : AuthorizeAttribute
{
    public AuthorizedAdmin()
    {
        Users = ConfigurationManager.AppSettings["ADMIN_USERS"];
        Roles = ConfigurationManager.AppSettings["ADMIN_GROUPS"];
    }
}

一方、IsAdminクラスはより複雑で、機能を複製します。

ありがとう

4

2 に答える 2

2

なぜあなたは必要IsAdminですか?GetAdminRole()からロール文字列を返すというメソッドを呼び出してからAppSettings使用しないのはなぜUser.IsInRole(GetAdminRole())ですか?

GetAdminRole()その後、あなたもで使用することができますAuthorizedAdminAttribute

于 2012-04-03T15:50:28.947 に答える
1

AuthorizeAdminもちろん、インスタンス化して呼び出すことができますOnAuthorization。しかし、それを扱うのは面倒AuthorizationContextです。これを裏返してみませんか...ビジネスロジックを入れIsAdminAuthorizedAdmin使用してみませんか?

于 2012-04-03T15:46:07.983 に答える