Ich möchte Controller-Aktion sichern, so dass nur Benutzer mit der Rolle "Admin" können. Ich benutze nicht Role/Membership-Provider bei allem ist benutzerdefiniert.
Ich habe dies bisher:Wie 'Pass-Parameter' zu benutzerdefinierten AuthorizeAttribute hinzufügen
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 "Admin" hier fest einprogrammiert.
Ich möchte, dass dies dynamisch sein. Jetzt
Diese Arbeit:
[CustomAuthorize]
public ActionResult RestrictedArea()...
Aber ich möchte etwas wie folgt aus:
[CustomAuthorize(Roles = "Admin")]
public ActionResult RestrictedArea()
Ich erhalte ' this.Roles-Wert als 'null' –
Haben Sie den Wert an 'Roles'-Variable übergeben? [CustomAuthorize (Roles =" admin ")]'? – Zbigniew
ja Alles ist gleich –