다음은 Forms 인증을 사용하는 MVC 4 인터넷 프로젝트의 문제점입니다. 내가 호텔을 가지고 있고 승인 된 사용자가 각기 다른 역할로 액세스하도록하고 싶습니다.MVC 4 - 서로 다른 범위의 인증 된 사용자 권한을 관리하는 RoleProvider
그래서 사용자가 로그인합니다. 그런 다음 드롭 다운 목록에서 대상 호텔을 선택하면 그에 따라 응용 프로그램의 보안이 그에 따라 응답합니다.
[Authorize (Roles = "Administrator")]와 같은 것이 필요하지만 그 호텔 범위에서만 필요합니다.
내 첫 aproach가 나는 HttpContext.Session [ "HotelId을"] 얻을와 UserRolesInHotel 테이블을 쿼리 수에서이 thread
에 표시됩니다 좋아 AuthorizeAttribute에서 상속 및 AuthorizeCore을 무시했다. 즉, 나는 UserId, RoleId, HotelId와 유사한 구조로 자신 만의 역할 테이블을 가져야한다. 따라서 SimpleRolePrivider는이 작업을 수행하지 않아서 CustomeRoleProvider를 만들어야합니다. RoleProvider 메소드는 새로운 역할을 사용자에게 추가 할 때 HotelId와 같이 필요한 추가 매개 변수를 처리하지 않습니다.
대한 명확한:
- 사용자 A가 사용자/암호로 로그인 -> 사용자 A 호텔 1. 에 대한 "관리자"입니다 -> 확인 (SimpleMembershipProvider)는
- 인증 된 사용자 A가 호텔 1 선택
- 인증 된 사용자 호텔 2 변경 -> 사용자 A가 나는 호텔의 수를 가질 수 있습니다 호텔 2
에서 "사용자"입니다.
- 사용자 A -> 호텔 (1) -> { "관리자", "사용자"}
- 사용자 A -> 호텔 2 -> { "사용자"}
- 사용자 A -> 호텔 3 -> { "소유자"}
- 사용자 A -> 호텔 4 -> { "관리자"}
역할 목록은 항상 동일합니다.
나는 며칠 동안이 구현에 어려움을 겪어 왔으며 나는 해법적인 해결책을 찾지 못했습니다. 모든 thougths 많이 감사하겠습니다.
감사합니다.
안녕하세요, 혹시이 문제에 대한 해결책을 찾아 냈습니까? 나는 너와 같은 문제를 다루고 있음을 깨닫고있다. 감사! – SaiyanGirl