Wie Sie 'übergeben Sie den parameter', um benutzerdefinierte AuthorizeAttribute

Möchte ich secure controller-Aktion, so dass nur Benutzer mit der Rolle "Admin" gelangen kann.

Ich glaube nicht, verwenden Sie die Rolle/Membership provider-alles ist "custom".

Ich habe diese so weit:

public class CustomAuthorizeAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        var isAuthorized = base.AuthorizeCore(httpContext);            
        if (!isAuthorized)
            return false;

        string username = httpContext.User.Identity.Name;

        UserRepository repo = new UserRepository();

        return repo.IsUserInRole(username, "Admin");
    }
}

Beachten Sie, dass ich hardcoded "Admin" hier.

Ich will, dass diese dynamisch sein.

Diese Arbeit nun:

[CustomAuthorize]
        public ActionResult RestrictedArea()...

Aber ich möchte so etwas wie dies:

[CustomAuthorize(Roles = "Admin")]
        public ActionResult RestrictedArea()
InformationsquelleAutor 1110 | 2013-02-23
Schreibe einen Kommentar