AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.11.2007, 15:09   #5  
SeregaK is offline
SeregaK
Участник
 
76 / 21 (1) +++
Регистрация: 10.11.2006
Вроде так! =)
//определяем сервис необходимый для работы с обьектами CRM
CrmService service = newCrmService();
service.Credentials = System.Net.
CredentialCache.DefaultCredentials;
//определяем текущего пользователя
WhoAmIRequest userRequest = newWhoAmIRequest();
WhoAmIResponse user = (WhoAmIResponse)service.Execute(userRequest);
//
QueryExpression RoleQuery = newQueryExpression();
RoleQuery.ColumnSet =
newAllColumns();
RoleQuery.EntityName =
"role";
ConditionExpression RoleCondition = newConditionExpression();
RoleCondition.AttributeName =
"systemuserid";
RoleCondition.Operator =
ConditionOperator.Equal;
RoleCondition.Values =
newobject[] { user.UserId };
LinkEntity le = newLinkEntity();
le.LinkFromEntityName =
"role";
le.LinkFromAttributeName =
"roleid";
le.LinkToEntityName =
"systemuserroles";
le.LinkToAttributeName =
"roleid";
LinkEntity le2 = newLinkEntity();
le2.LinkFromEntityName =
"systemuserroles";
le2.LinkFromAttributeName =
"systemuserid";
le2.LinkToEntityName =
"systemuser";
le2.LinkToAttributeName =
"systemuserid";
le2.LinkCriteria =
newFilterExpression();
le2.LinkCriteria.Conditions =
newConditionExpression[] { RoleCondition };
le.LinkEntities =
newLinkEntity[] { le2 };
RoleQuery.LinkEntities =
newLinkEntity[] { le };
BusinessEntityCollection roleCollection = service.RetrieveMultiple(RoleQuery);
bool ManagerRole = false;
bool AdminRole = false;
foreach (BusinessEntity rol in roleCollection.BusinessEntities)
{
if (((role)rol).name == 'Менеджер')
{ ManagerRole =
true; }
if (((role)rol).name == 'Системный администратор')
{ AdminRole =
true; }
}
этот код тащит все роли, а потом в цикле определяется какие роли у юзера есть из интересующих(это удобно когда надо определить узверга на причастиность к нескольким ролям), а если надо проверить на причастность к одной роли, то просто надо дописать ещё один Condition и проверять возврашаемую ретрайвом коллекцию на не пустоту! В SDK есть пример, я от туда брал в своё время!

За это сообщение автора поблагодарили: tatra (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Где найти веб-форму Преобразования интереса? Impulse Dynamics CRM: Разработка 2 28.09.2008 13:55
Где находится база данных системы? Как узнать? Likefire Dynamics CRM: Администрирование 1 18.09.2008 14:37
Добавление пользователей в CRM4 AlexsSDa Dynamics CRM: Администрирование 22 14.07.2008 11:21
Проблема с добавлением пользователей xm-ad Dynamics CRM: Администрирование 5 26.10.2007 15:58
Максимальное количество пользователей в MS CRM pkost Dynamics CRM: Администрирование 1 27.02.2007 18:51

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:04.