Как инициализировать свойства профиля в Silverlight 4 с помощью WCF RIA - PullRequest
1 голос
/ 14 мая 2011

Я использую Silverlight 4, C #, службы WCF RIA и SQL Server 2008. У меня есть таблица, в которой хранятся данные для пользователей, например, Имя, Фамилия и т. Д. Я определил профиль в классе моего AuthenticationDomainService, который наследуетиз базы пользователей.Это выглядит так:

public class BrightSparksUser : UserBase
{
    public string firstName { get; set; }
    public string lastName { get; set; }
    public DateTime dateOfBirth { get; set; }
    public String typeOfIdentification { get; set; }
    public String idNumber { get; set; }
    public String cellNumber { get; set; }
    public String emailAddress { get; set; }
    public int userNumber { get; private set; }
    public int centreOfInstruction { get; set; }
    public int accessLevel { get; set; }
}

Я соответствующим образом изменил файл Web.config на стороне сервера.Я могу хранить и извлекать данные из и в этих полях на стороне клиента, поэтому все настроено правильно.

Я хотел бы иметь возможность заполнять эти поля сведениями, хранящимися в базе данных, когдапользователь входит в систему. Вход в систему работает нормально, используя пользовательский MembershipProvider.

public class BrightSparksMembershipProvider : MembershipProvider
{
    public override bool ValidateUser(string usernumber, string password)
    {

        using (BRIGHT_SPARKSEntities context = new BRIGHT_SPARKSEntities())
        {

            var user = context.Users.Where(u => u.Email == usernumber && u.Password == password).FirstOrDefault();
            return user != null;
        }

Можно ли заполнить поля, как я объяснил?Как бы вы поступили так?

Спасибо за помощь, ребята.

PS: Это мой первый вопрос, поэтому, пожалуйста, скажите мне, если я слишком расплывчатый или слишком конкретный :)

1 Ответ

0 голосов
/ 16 июня 2011

Вы можете вызвать свой класс членства из класса обслуживания, выполнив что-то вроде этого:

BrightSparksMembershipProvider provider = 
    Membership.Provider as BrightSparksMembershipProvider;
BrightSparksUser user = 
    (BrightSparksUser)provider.GetUser(user.Username);
...