Членство в WCF - PullRequest
       2

Членство в WCF

0 голосов
/ 02 февраля 2011

У меня есть служба WCF, использующая учетные данные пользователя. Теперь System.Web.Security.Membership.GetUser всегда возвращает ноль, но он может извлечь список пользователей в aspnetdb (System.Web.Security.Membership.GetAllUsers ())

Однако на стороне службы «ServiceSecurityContext.Current.PrimaryIdentity.Name» всегда возвращает правильное аутентифицированное имя пользователя.

Кто-нибудь знает, почему GetUser () всегда возвращает ноль?

это трассировка от sql profiler

exec dbo.aspnet_Membership_GetUserByName @ ApplicationName = N'myApplication ', @ UserName = N' ', @ UpdateLastActivity = 1, @ CurrentTimeUtc =' 2011-02-01 23: 14: 56.2830000 '

Обратите внимание, что указанное имя пользователя пустое.

1 Ответ

1 голос
/ 02 февраля 2011

У меня была похожая проблема в прошлом, и в моем случае изменение моего кода на приведенное ниже исправило проблему:

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

Надеюсь, что один из ответов там работает и для вас.

Приветствия!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...