2010-01-30 1 views
0

RoleProvider에서 상속하여 사용자 지정 역할 공급자를 만들 때 public override string [] GetRolesForUser (string username)이라는 메서드 을 만들었습니다. 그러나이 서비스 참조를 사용하려고 시도하면 에 대한 액세스 권한은 GetRolesForCurrentUser()입니다. 그것은 을 사용하고 장면 내에서 내 메서드를 호출합니다. 에서와 마찬가지로 GetRoleseForCurrentUser는 현재 사용자를 내 메서드로 전달하므로 모두 좋습니다. 그러나 내가 궁금해하는 것은, 나를위한 방법은 또한 내 원래의 방법 (인수를 취하는 하나)을 노출, 또는 내가 뭔가를 놓치고 무엇입니까?WCF : GetRolesForUser는 어디에 있습니까? 내가 볼 수있는 것은 GetRolesForCurrentUser입니다.

+0

일부 코드는 게시 할 수 있습니까? 나는 그걸 알아 내기 힘들다 ... –

답변

0

음, 먼저 사용자 인터페이스/암호 메시지 레이어 인증을 사용하고 메시지 레이어 인증을위한 사용자 지정 역할 공급자를 사용한다고 가정해야합니다.

당신은 당신이 전송 계층 보안 확인이 일을하는 경우

GetRolesForCurrentUser()의 점은 그런 식으로, 현재 스레드 교장 사용자를 확인하고 해당 사용자의 모든 역할을 반환한다는 것입니다 사용자는 절대로 다른 사람을 사칭 할 수 없습니다. Username/Password는 메시지 헤더에 임베드되어야합니다. 이는 클라이언트에서 프록시 인증 정보를 설정할 때 .net에서 자동으로 발생합니다.

WCF 클라이언트를 호출하는 사용자가 사용자 이름을 매개 변수로 전달할 수 있다면 이는 디자인상의 역할 공급자가 현재 스레드 사용자 인 사용자에 의해 사용자를 계속 인증 함을 의미하며 사용자를 추가로 인증하려고 함을 의미합니다. 사용자 이름이 GetRolesForUser (문자열 사용자 이름)로 전달되었지만 복잡한 가장 (impersonation) 스키마와는 별도로 아무런 의미가 없습니다.

목표가 맞다면이 내용을 확인하십시오. link

관련 문제