System.Web.Mvc.AuthorizeAttribute에서 파생 된 사용자 지정 인증 특성을 작성했습니다. 내 컨트롤러에서 성공적으로 특정 기능에 대한 액세스를 제한하고 있습니다.인증 코드 중복의 방지 방법
public class ArticleController : Controller
{
[CustomAuthorize(Role.Administrator)]
public ActionResult Delete(int id)
{
// ...
}
}
그리고 제대로 작동합니다. 이제 같은 인증 논리에 따라 HTML 요소를 표시하거나 숨기려고합니다. 예를 들어 내 "기사"보기에서 사용자가 관리자가 아닌 경우 작업 버튼 "삭제"를 숨기려고합니다.
<ul id="menu">
<li>@if (User.IsInRole(Role.Administrator)) {
@Html.ActionLink("Delete", "Delete", "Article", new { id = article.ID }, null)
} </li>
</ul>
그것은뿐만 아니라 잘 작동하지만 내가 작업 수행을 두 번 필요한 credientials를 지정해야하기 때문에 코드 로직의 중복을 만듭니다 : 그 같은 것을 작성한 컨트롤러에서
- 을 액션을 차단하거나 허용합니다.
- 동작 링크를 표시하거나 숨기는보기입니다.
이 중복을 피하는 가장 좋은 방법은 무엇입니까? 뷰에서 내 사용자 정의 인증 속성을 재사용 할 수있는 방법이 있습니까?