나는이 같은 고객 속성을 작성하여 그것을했다 :
public class IsLocalAttribute : AuthorizeAttribute
{
public bool ThrowSecurityException { get; set; }
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var isLocal = httpContext.Request.IsLocal;
if (!isLocal && ThrowSecurityException)
throw new SecurityException();
return isLocal;
}
}
전체 컨트롤러
기본 사용법 :
public class SomeController : Controller
{
[IsLocal]
public ActionResult LocalOnlyMethod()
{
return View();
}
}
:
[IsLocal]
public class LocalOnlyController : Controller
{
public ActionResult Index()
{
return View();
}
}
또는 특정 방법에
302 리디렉션 대신 보안 예외를 throw하려는 경우 :
public class SomeController : Controller
{
[IsLocal(ThrowSecurityException = true)]
public ActionResult LocalOnlyMethod()
{
return View();
}
}
코어에서 Request.IsLocal을 사용하는 자체 Authorize 속성을 만드는 것이 합리적일까요? – Nate
예. 내 편집의 링크를 참조하십시오. – KingCronus