사용자가 주어진 작업에 대한 권한이있는 경우에만 작업 링크를 표시하고 싶습니다. aurhorization을 반복하지 않고 cshtml에서이를 수행 할 수있는 좋은 방법이 있습니까? 속성에서 이미 설정 한 동일한 권한을 확인하지 않습니다.승인 된 경우 작업 링크
감사합니다.
사용자가 주어진 작업에 대한 권한이있는 경우에만 작업 링크를 표시하고 싶습니다. aurhorization을 반복하지 않고 cshtml에서이를 수행 할 수있는 좋은 방법이 있습니까? 속성에서 이미 설정 한 동일한 권한을 확인하지 않습니다.승인 된 경우 작업 링크
감사합니다.
당신은 데이터베이스에 링크를 저장할 수 있습니다. 및 사용자에 따라 권한을 할당하십시오. 전망에 는 권리에 따라 연결을 만든다.
public static MvcHtmlString If(this MvcHtmlString value, bool evaluation)
{
return evaluation ? value : MvcHtmlString.Empty;
}
그래서 당신이 사용할 수 있습니다하십시오 기준은 다음과 같이 충족 될 때
[HttpPost]
[InitializeSimpleMembership]
[Authorize(Roles = "YourRole")]
public ActionResult Create(Product p)
{
...
}
@if (User.IsInRole("YourRole"))
{
@Html.ActionLink("Create Product", "Create")
}
난 단지 출력을 반환에 과거에이 도우미 함수를 사용한
@Html.ActionLink("Create New", "Create").If(User.IsInRole("Your Role"))
이 읽기 쉬운입니다 짧음
나는이 대답을 보았고 두 곳의 다른 장소에서 나의 권리를 반복하는 것을 포함하지 않는 무언가를 찾고 있었다. –
ASP.NET ID는 작동하지 않습니다. 'IsInRole' 예외를 throw하고 다소 obselete입니다. – DarthVader
컨트롤러에이 속성을 추가 했습니까? [InitializeSimpleMembership] –
지난 10 년 동안 ASP.NET ID가 있습니다. – DarthVader