8
Voglio proteggere l'azione del controller in modo che solo gli utenti con il ruolo "Admin" possano entrare.
Non uso affatto il provider di ruolo/appartenenza.
Ho fatto questo finora:Come aggiungere "pass parameter" a custom AuthorizeAttribute
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");
}
}
Si noti che ho hardcoded "Admin" qui.
Voglio che questo sia dinamico.
Questo lavoro ora:
[CustomAuthorize]
public ActionResult RestrictedArea()...
Ma io voglio qualcosa di simile:
[CustomAuthorize(Roles = "Admin")]
public ActionResult RestrictedArea()
sto ottenendo ' valore.Roles' come 'null' –
Hai passato il valore alla variabile' Roles' '[CustomAuthorize (Roles =" admin ")]'? – Zbigniew
sì Tutto è lo stesso –