나는이 프로젝트에서 관리자 사용자의 로컬 db를 유지하고 일반 사용자를 위해 외부 db를 사용해야한다고 요구합니다. admin db에 인증을 통과 한 사람에게는 'admin'역할을 할당하고 다른 db를 통해 인증 된 사람에게는 항상 'user'역할을 할당해야합니다.ASP.NET MVC에서 수동으로 사용자 역할을 설정하는 방법은 무엇입니까?
이러한 역할을 수동으로 할당 할 수 있습니까? 나는 역할 공급자 나 어떤 것의 복잡성을 필요로하지 않는다. 왜냐하면 나는이 두 가지 역할을 항상 사용하고 있기 때문이다.
샘플 코드 나 일부 문서에 대한 링크를 제공 할 수 있다면 큰 도움이 될 것입니다. 감사!
는편집 :
은 현재 내가 역할 공급자를 사용하여 생성하고 있지 않다 하나는 번거 로움처럼 보인다. 나는 'best-practice'가 아니라는 것을 알고 있지만 로그인하는 동안 2 가지 역할 중 하나만 지정하면됩니다. 또한 사용자가 이미 자신의 역할에 따라 2 dbs로 분리되어 있기 때문에 데이터베이스에 역할 정보를 저장하는 것은 의미가 없습니다.
이if (AdminDB.ValidateUser(username,password)==true) {
SetAuthCookie(username);
AssociateUserWithRole(username, 'admin');
} elseif (UserDB.ValidateUser(username,password)==true) {
SetAuthCookie(username);
AssociateUserWithRole(username, 'user');
} else {
// Login failed.
}
그것은 'ThisSession.AssociateUserWithRole'부분 모르겠어요 :
는 여기에 몇 가지 의사 코드입니다. 기본적으로 사용자 중 하나가 인증되므로 .NET에 사용자가 속한 역할을 알릴 필요가 있습니다.
커스텀 AuthorizeAttribute가 가장 이해하기 쉽습니다 (PHP-land의 .NET MVC noob). 도와 주셔서 감사합니다!! –
'Session'을 this로 사용 하시겠습니까? : login->'Session.Add ("LoggedInRole", "admin"); 그리고 현재 사용자의 유형이 필요할 때'Session'에서 읽으십시오. 'Session'은 사용자 유형 (역할)을 저장할만큼 안전합니까? –
@MajidR'Session'은 일반적으로 모든 서버 측이므로 침입 관점에서 역할 공급자보다 덜 안전합니다. 분명히 모든 논리를 직접 코드화해야하므로 견고성 관점에서 볼 때 논리에 의존하게됩니다. 아마'RoleProvider' 라우트로 갈 것입니다. – tvanfosson