none
Управление профилем пользователя Silverlight Business Application Templat RRS feed

  • Общие обсуждения

  • Цель: Передо мной зада используя шаблон Silverlight Business Application, разработать приложение, в котором только зарегистрированные пользователи, могли бы добавлять в базу данных PhName  информацию (имена друзей и номера их телефонов), а так же просматривать добавленные только ими информацию, т.е. запись может просмотреть только тот пользователь, который ее создал.

     

    Как это можно осуществить ?

    Поиск пока дал такую информацию

    Можно добавить в Web.config вот свойства UserId

    <properties>

            <add name="FriendlyName" />

            <add name="UserId" />

          </properties>

     

    Так же в Models\User.cs  добавить

    public int UserId { get; set; }

     

    Подскажите, пожалуйста, как узнать какой номер был у предыдущего пользователя и как при регистрации указать параметр UserId??

    Задача 2.

    Предположим создал на моем SQL Server таблицу PhName для хронения номеров телефонов, с столбцами:

    Name nchar(10)

    Tel nchar(10)

    UserId int

    num  int

     

    и создал модель данных «модели ADO.NET EDM» PhName.edmx, в качестве источника данных указал таблицу  PhName

     

    В проект так же добавил Класс DomainService «PhNameService» в качестве источника сущностей указал PhName.

    В PhNameService.cs Добавил параметр

       [RequiresAuthentication]

    Классу

    public class PhNameService :

     

    Добавил метод

    public IQueryable<PhName> GetPhNamesID(int PhNamesID)

            {

                return this.ObjectContext.PhNames.Where(a => a.UserId.Equals(PhNamesID));

            }

    Так чтобы возвращались только записи с идентификатором которых был равен значению идентификатора пользователя.

     

    Подскажите как здесь вместо PhNamesID вставить UserId залогиневшегося пользователя.


    Задача 1. При регистрации пользователя присваивать ему  уникальные номер. Пока решил, что для этого будет достаточно число типа int.
    29 марта 2011 г. 12:14

Все ответы

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

            public IQueryable<PhName> GetPhNamesIDus()

            {

                string usr;

               

                if (HttpContext.Current.User.Identity.IsAuthenticated)

                     usr = HttpContext.Current.User.Identity.Name;

                else  usr = "";

                // User user = new User();

                //int id = 1;

                //return this.ObjectContext.PhNames.Where(a => a.Name.Contains(usr));

                return this.ObjectContext.PhNames.Where(a=>a.UserId.Contains(usr));

            }

    Т.е. для идентификатора автора записи использовал имя пользователя т.к. оно уникально в приделах данного проекта.  

    public void InsertPhName(PhName phName)

            {

                phName.UserId = HttpContext.Current.User.Identity.Name;

                if ((phName.EntityState != EntityState.Detached))

                {

                    this.ObjectContext.ObjectStateManager.ChangeObjectState(phName, EntityState.Added);

                }

                else

                {

                    this.ObjectContext.PhNames.AddObject(phName);

                }

            }

     

    Но я не разберусь, как работать с профилем пользователя. Я не смог повторить то, что сделано в примере. http://blogs.msdn.com/b/brada/archive/2010/03/26/silverlight-4-ria-services-ready-for-business-authentication-and-personalization.aspx.
    30 марта 2011 г. 18:59
  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]
    4 апреля 2011 г. 5:20
    Модератор