Использование Silverlight RIA Services DomainDataSource для запроса пользователем

Поэтому я использую бизнес-шаблон SL4 и API членства в SQL. Я создал пользователя и создал настраиваемую таблицу, которая связана с этим пользователем.

Поэтому я хочу иметь сетку данных, в которой отображается элемент для пользователя CURRENT (WebContext.Current.User).

  1. Почему GUID для пользователя находится в WebContext.Current.User ??? Мне это нужно, чтобы присоединиться к таблице «Предметы».

  2. Как я могу использовать XAML DomainDatasource ... из того, что я вижу, вы можете использовать его только в том случае, если вы можете привязать к чему-то еще в XAML ... например, если у меня есть элемент управления календарем на странице, я могу привязать источник domaindatasource к календарю .... Но я хочу запросить "UserID (GUID)" ... так что мне нужно поместить скрытое поле в XAML с этим значением, чтобы иметь к нему доступ? (как скрытые поля в asp.net)

или я все делаю неправильно ... это действительно простая концепция ... У меня есть пользователи ... У меня есть элементы ... есть взаимосвязь ... и я хочу, чтобы сетка данных была заполнена элементами для конкретного пользователя.


person punkouter    schedule 30.07.2010    source источник


Ответы (1)


Есть два подхода к этому. Во-первых, вы можете просто написать запрос GetDataForCurrentUser () и вытащить текущего пользователя на сервере. Это, как правило, более безопасный вариант, поскольку пользователь может получать только свои собственные данные. Второй вариант - передать идентификатор пользователя в качестве параметра. В этом посте я покажу пару способов сделать это.

http://jeffhandley.com/archive/2010/03/18/custom-filter-parameter.aspx

person Kyle McClellan    schedule 30.07.2010
comment
Я запутался на первый взгляд ... вы говорите о получении GUID UserID с использованием аутентификации с помощью форм + встроенных таблиц членства SQL, верно? Я завтра посмотрим на свой код более внимательно. - person punkouter; 31.07.2010
comment
Я изучаю это подробнее ... Я до сих пор не понимаю ... Я использовал код из вашего образца, чтобы передать User.Name ... Но мне нужен PrimaryKey, который является GUID пользователя ... как мне получить это значение ??? Мне нужен этот ключ, чтобы затем сопоставить пользователя с «Items». Это похоже на обычную вещь, связанную с таблицами членства SQL, я не знаю, почему мне это кажется трудным. - person punkouter; 01.08.2010
comment
Прости. Я предполагал, что вы знакомы с поддержкой аутентификации RIA. Если это не так, вы можете начать с учебного пособия (msdn.microsoft.com/en-us/library/ee707361 (v = VS.91) .aspx) или несколько примеров (code.msdn.microsoft.com/RiaServices/Release/). - person Kyle McClellan; 02.08.2010
comment
Кроме того, User.Name следует рассматривать как уникальный идентификатор пользователя (первичный ключ). Похоже, было бы лучше, если бы в нем был GUID пользователя. - person Kyle McClellan; 02.08.2010
comment
Итак ... Мне нужно выяснить, как получить свойство GUID в объекте User ... Кажется, это недостающий кусок головоломки, которого я не понимаю? - person punkouter; 03.08.2010
comment
Вы имели в виду "следует" или "не следует" - person punkouter; 03.08.2010
comment
Это должен быть уникальный идентификатор. Это побочный эффект реализации интерфейса IPrincipal (обычно имя связано с вашим именем для входа). Если ваш идентификатор - guid, используйте его. Если вы хотите где-то сохранить имя пользователя, добавьте еще одно свойство и поместите его в свои таблицы или добавьте его как свойство профиля. - person Kyle McClellan; 03.08.2010