2011-12-06 2 views
0

내 ASP.NET 응용 프로그램에 대해 Oracle.Web.Security.OracleMembershipProvider MembershipProvider를 사용하고 있습니다. 로그인 양식에 사용자 이름, 비밀번호 및 이메일 주소가 있습니다.MembershipProvider에서 사용자 특성 얻기

로그인 한 후 User.Identity.Name으로 사용자 이름에 액세스 할 수 있습니다.

  1. 어떻게 전자 메일 주소를 검색 할 수 있습니까? User 개체에서 찾을 수 없습니다.
  2. 두 가지 유형의 사용자 (쓰기 권한이있는 사용자와 읽기 권한이있는 사용자)를 변경하려면 어떻게해야합니까?
  3. userid가 외래 키인 다른 테이블을 작성해야합니다. 어떻게하면 다른 테이블에 외래 키로 입력 할 수 있는지 검색 할 수 있습니다.

답변

1

은 당신이 중 하나를 사용하여 사용자 개체를 만들 수 있습니다

[C#] 
System.Web.Security.Membership.GetUser("username"); 
System.Web.Security.Membership.GetUserNameByEmail("email"); 
  1. 이 방법은 MembershipUser 개체를 반환합니다. 이 개체를 사용하면 전자 메일 및 기타 속성을 검색 할 수 있습니다.

  2. 다른 유형의 사용자가 무엇을 의미하는지 확신 할 수 없지만 사용자 역할을 사용할 수 있습니다.

  3. 당신은 System.Guid

으로 사용자 아이디를 얻을 수 MembershipUserProviderUserKey 속성을 사용할 수 있습니다
  • 0

    인증 후 스레드에 설정된 주체는 본질적으로 일반 사항이며 이러한 세부 사항을 포함하지 않습니다. 한 가지 방법은 새 속성을 추가하여 IPrincipal 및 IIdentity 인터페이스를 확장하고 인증 단계에서 설정하는 것입니다. 그러나 이것은 이상적인 접근 방식이 아닌 authentication \ authorization 메커니즘으로 땜질을해야합니다.
    또 다른 방법은 문제 도메인에 사용자 지정 사용자 클래스를 만들고 사용자가 인증되면 데이터를로드하는 것입니다. 이 User 클래스에는 원하는 모든 속성 및 관련 엔터티가 포함될 수 있습니다. 이는 사용자 정의 코드이며 ASP.Net 보안 인프라를 사용하지 않습니다.

    관련 문제