성 Windsor입니다. 컨트롤러 생성자가 사용중인 저장소를 전달할 때 유용합니다. ASP.NET MVC의 권한 부여 특성에 저장소를 전달하는 방법
private IStoryRepository Repository;
public StoryController(IStoryRepository Repository)
{
this.Repository = Repository;
}
는 지금은 주요 관리자 메뉴를 표시 할 수있는 관리 지역에 액션이있다. 내가 얻을 수있는 방법은 성이 같은 속성 생성자에 저장소를 통과 단지 로그인 한 사용자는 관리자가 (사용자 테이블에서 단지 isAdmin 플래그)
[AdminAuthorize]
public ActionResult Menu()
private IStoryRepository Repository;
/// <summary>
/// Initializes a new instance of the <see cref="AdminAuthorizeAttribute"/> class.
/// </summary>
public AdminAuthorizeAttribute(IStoryRepository Repository)
{
this.Repository = Repository;
}
/// <summary>
/// Checks if the user is authorised
/// </summary>
/// <param name="httpContext">The HTTP context.</param>
/// <returns>
/// <c>true</c> if authorized; otherwise, <c>false</c>.
/// </returns>
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
return this.Repository.UserIsAdmin(httpContext.User.Identity.Name);
}
있는지 확인하는 사용자 지정 권한 부여 특성을 사용했다 컨트롤러 생성자에 해당합니까?