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
스택 추적이란 무엇입니까? – SLaks
구성 파일 (app.config)에 구성된 멤버 자격 공급자는 무엇입니까? –
app.config 파일에 정보를 추가하기 위해 편집 됨 – pStan