2011-02-01 139 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

希望其中的一个答案也适合你。

干杯!