8
Chcę zabezpieczyć działanie kontrolera, aby mogli dostać się tylko użytkownicy z rolą "Admin".
Nie używam dostawcy roli/członkostwa w ogóle, wszystko jest niestandardowe.
zrobiłem to do tej pory:Jak dodać "parametr pass" do niestandardowego 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");
}
}
Zauważ, że sztywno „Administrator” tutaj.
Chcę, żeby to było dynamiczne.
Ta praca teraz:
[CustomAuthorize]
public ActionResult RestrictedArea()...
Ale chcę coś takiego:
[CustomAuthorize(Roles = "Admin")]
public ActionResult RestrictedArea()
Dostaję ' this.Roles' value as 'null' –
Czy przekazałeś wartość zmiennej' Role' '[CustomAuthorize (Roles =" admin ")]'? – Zbigniew
tak Wszystko jest takie same –