Этот пост в блоге имеет ответ. Silverlight со службами WCF Ria и ролями Active Directory . Спасибо Дэн за этот пост!
Я использую Silverlight 4, поэтому с момента публикации этой статьи изменилось несколько вещей. Я также использовал шаблон бизнес-приложения для этого проекта.
Шаг 1. Это уже было установлено в шаблоне BussinessApplication в коде App.xaml.cs. Вам нужно закомментировать строку с webContext.Authentication = new FormsAuthentication();
и раскомментировать строку webContext.Authentication = new WindowsAuthentication();
.
Шаг 2. Без изменений. Добавьте <authentication mode="Windows"/>
в файл web.config в элементе /configuration/system.web.
Шаг 3. RiaContex теперь является WebContext, поэтому измените его в примере. Первая строка, загружающая пользователя, RiaContext.Current.Authentication.LoadUser(this.Application_UserLoaded, null);
уже была в коде.
Шаг 4. Без изменений. добавьте <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/>
в файл web.config в элементе /configuration/system.web.
С этими небольшими изменениями приложение Silverlight подключалось к Active Directory и заполняло искомый WebContext.Current.User.Roles
.