2011-02-01 108 views
0

我有一個使用用戶名憑證的WCF服務。現在,System.Web.Security.Membership.GetUser總是返回null,但它能夠提取aspnetdb中的用戶列表(System.Web.Security.Membership.GetAllUsers())WCF會員供應商

但是,在服務端的「 ServiceSecurityContext.Current.PrimaryIdentity.Name「始終返回正確的認證用戶名。

有誰知道爲什麼GetUser()總是返回null?

這是從SQL探查跟蹤

EXEC dbo.aspnet_Membership_GetUserByName @應用程序名= N'myApplication '@用戶名= N '',@ UpdateLastActivity = 1,@ CurrentTimeUtc =' 2011-02-01 23: 14:56.2830000'

請注意,上面的用戶名是空白的。

+0

確定用戶已登錄... – 2011-02-02 00:00:36

回答

1

我有類似的問題,在過去,在我的情況下,改變我的代碼下面剪斷固定的問題:

MembershipUser user = Membership.GetUser(username); 
GenericIdentity identity = new GenericIdentity(user.UserName); 
RolePrincipal principal = new RolePrincipal(identity); 
System.Threading.Thread.CurrentPrincipal = principal; 
HttpContext.Current.User = principal; 

我已經得到了從下列線這個提示: http://forums.asp.net/p/939408/1316031.aspx

希望其中的一個答案也適合你。

乾杯!