2013-07-09 4 views
1

Windows 응용 프로그램의 사용자를 인증하기 위해 클라이언트 응용 프로그램 서비스를 사용하고 있습니다. (SqlMembershipProvider) 로그인 잘 작동하고 난 다음 코드를 사용하여 사용자 이름을 잡을 수 있습니다 : 나는 같은 이메일 주소로 사용자에 대한 좀 더 많은 정보를 잡아 할Membership.GetUser() - 지정된 메서드가 지원되지 않습니다.

userName = System.Threading.Thread.CurrentPrincipal.Identity.Name.ToString(); 

. 나는 다음 줄을 사용하여 사용자를 얻으려고했다.

MembershipUser mu = Membership.GetUser(); 

위의 줄은 "지정된 방법이 지원되지 않습니다."라는 메시지를 표시합니다. userName도 전달하면 같은 결과가됩니다.

asp.net 앱에서와 같이 클라이언트 응용 프로그램 서비스를 사용하여보다 자세한 사용자 정보를 얻을 수있는 방법이 있습니까? 그렇지 않다면 대신 내 자신의 웹 서비스 래퍼를 만들어야 할까?

4.0 프레임 워크를 사용하고 있습니다.

업데이트 : 스택 추적

System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider.GetUser (문자열 이름, 부울 userIsOnline)에서

다음 app.config 파일

<system.web> 
    <membership defaultProvider="ClientAuthenticationMembershipProvider"> 
     <providers> 
     <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="http://PC-03/FAAppServices/Authentication_JSON_AppService.axd" credentialsProvider="BillingFormsApplication.LoginForm, BillingFormsApplication" savePasswordHashLocally="True" /> 
     </providers> 
    </membership> 
    <roleManager defaultProvider="ClientRoleProvider" enabled="true"> 
     <providers> 
     <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="http://PC-03/FAAppServices/Role_JSON_AppService.axd" cacheTimeout="1209600" honorCookieExpiry="True" /> 
     </providers> 
    </roleManager> 
    </system.web> 

업데이트 2의 조각 C에서 BillingFormsApplication.MDIMain.MDIMain_Load에서 System.Web.Security.Membership.GetUser (문자열 이름, 부울 userIsOnline) (개체 보낸 사람, EventArgs입니다 전자)에서 : \ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.cs : 라인 340

+0

스택 추적이란 무엇입니까? – SLaks

+2

구성 파일 (app.config)에 구성된 멤버 자격 공급자는 무엇입니까? –

+0

app.config 파일에 정보를 추가하기 위해 편집 됨 – pStan

답변

0

SimpleMembership은 이름에서 알 수 있듯이 매우 간단하며 MembershipProvider 메서드를 모두 구현하지는 않습니다. MVC 기본 인증 및 권한 부여에 필요한 것입니다. 구현되지 않은 메소드를 사용하려고하면 예외가 발생합니다. 처음부터 자신 만의 MembershipProvider를 만들거나 SimpleMembership에서 상속 받아 구현되지 않은 메소드를 구현할 수 있습니다.

관련 문제