Есть несколько вещей, которые вы можете сделать.
1) Ограничить доступ к веб-сервисам, на которые он звонит - ответ Дэвиде хорошо описывает это.
2) Ограничить доступ к веб-сайту, гдесуществует приложение SL, которое легко сделать с ASP.NET и встроенной поддержкой аутентификации Windows через MembershipProvider.Таким образом, пользователь даже не сможет загрузить HTML-страницу с приложением Silverlight, если он не в нужной роли.Это также помешает им установить приложение как Out of Browser, так как они никогда не смогут получить его в первую очередь.
3) В режиме OOB приложения (когда Application.Current.IsRunningOutOfBrowser
имеет значение true),при запуске звоните в веб-сервис, который проверяет, что пользователь находится в правильной роли - если это не так, приложение может просто отобразить «не авторизованный» визуал и не показать реальную функциональность приложения.
Таким образомЕсли пользователь когда-либо был в роли и установил приложение OOB, но затем потерял это разрешение, он все равно не смог бы использовать приложение.
Что касается реализации всего этого, я предлагаю посмотреть наWCF RIA Услуги.Он имеет отличную поддержку аутентификации / авторизации, которая должна упростить его реализацию, даже если вы не хотите использовать службы RIA для доступа к данным по какой-либо причине (хотя я также рекомендую это, это помогает скрыть большую часть асинхронной сложности данных Silverlightдоступ).