Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Своя аутентификация Silverlight 4


Автор: granit1986 18.4.2010, 18:27
Здравствуйте. Есть ли у кого подобное? А то у самого не получается сделать. Есть 2 таблички в базе - в одной (Users) хранятся логины и пароли, а в другой (Employees) - данные о пользователе. надо что бы после ввода имени и пароля я потом мог получить данные о текущем пользователе в любом месте кода через WebContext. Уже всю голову сломал себе, не знаю как сделать

Автор: jonie 18.4.2010, 23:40
WebContext как я понимаю это из WCF RIA services.
вот тут примеры аутентификации http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=2661

как мне помнится наследуюете MyUser от UserBase, а дальше в сервисной части авторизации (наследуется от AuthenticationBase<MyUser>) есть метод
Цитата

 protected override User GetAuthenticatedUser(IPrincipal pricipal)
где вы можете вернуть своего MyUser

Автор: granit1986 19.4.2010, 04:01
этот пример смотрел - не получилось так как тамю может кто сам делал?

Автор: jonie 19.4.2010, 08:15
что значит "не получилось" ?? Оно работает, ищите ошибки у себя

Автор: granit1986 19.4.2010, 08:57
да вот пытаюсь. вроде всё сделал как там, но мне почему-то пишет:
CodeProcessor Type 'System.ServiceModel.DomainServices.Server.ApplicationServices.AuthenticationCodeProcessor' defined in DomainIdentifier attribute on Type 'SilverlightApplication3.Web.AuthenticationDomainService' threw an exception: The Roles member in User must be included in the generated entity.    SilverlightApplication3

хотя так же как и в примере я сделал
Код

public partial class User : IUser
   {
      public IEnumerable<string> Roles
      {
         get
         {
            throw new NotImplementedException();
         }
         set
         {
            throw new NotImplementedException();
         }
      }
   }



UPD: нашел в чём проблема была - забыл сделать аттрибут [DataMember], но тепепоявилась другая ошибка:
CodeProcessor Type 'System.ServiceModel.DomainServices.Server.ApplicationServices.AuthenticationCodeProcessor' defined in DomainIdentifier attribute on Type 'SilverlightApplication3.Web.AuthenticationDomainService' threw an exception: The Name property in User must be marked with the KeyAttribute.    SilverlightApplication3

UPD2: Всё, вроде нашёл косяк. Поле Name обязательно должно быть ключом

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)