나는 사용자가 "시스템 관리자"라는 역할에 속하는지 알기 위해 쉬운 필터를 만들려고 시도했다. 기본적으로는 [Authorize(Roles = "System Administrator")]
을해야한다. 나는 그것이 매우 간단 할 것이라고 생각했지만 MVC에 상당히 익숙하기 때문에 아마도 뭔가를 바라 볼 것입니다. 여기서 내가 잘못 가고 ASP.Net Identity 2 - 내 필터가 작동하지 않는 이유는 무엇입니까?
using System.Web.Mvc;
namespace site_redesign_web.Filters
{
public class SystemAdminFilter : ActionFilterAttribute
{
string SysAdminRole = "System Administrator";
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.RequestContext.HttpContext.User != null)
{
var userSysAdmin = filterContext.RequestContext.HttpContext.User.IsInRole(SysAdminRole) == true;
filterContext.ActionParameters["IsSysAdmin"] = userSysAdmin;
}
}
}
}
어떤 사람이 제안 할 수 있습니다 :
여기 내 코드입니까? 거대한 플러스는 사람이 시스템 관리자가 아니면 Home/NoPermissions
으로 안내합니다.
감사합니다.
로했다? – Aravind
전체 클래스를 표시하도록 업데이트되었습니다. 고맙습니다! – ajtatum
이 게시물은 더 잘 이해하는 데 도움이 될 수 있습니다. https://code.msdn.microsoft.com/ASPNET-MVC-5-Security-And-44cbdb97 – bijayk