Есть ли пример приложения для использования WIF с приложением ASP.NET MVC? Может кто-нибудь помочь мне начать пытаться интегрировать обе эти технологии?
Пример приложения MVC для Windows Identity Foundation
Ответ 1
Я обнаружил, что лучшим примером для начала является Dominick Baiers StarterSTS.
Даже если вы не используете это как свой STS, учебные пособия на сайте - отличная отправная точка. В ASP.NET MVC нет специальных учебных пособий, но я работаю так же, как и ASP.NET WebForms.
Итак, короче...
- Загрузить WIF и WIF SDK - http://msdn.microsoft.com/en-us/evalcenter/dd440951.aspx
- Загрузить StarterSTS - http://startersts.codeplex.com/
- Следуйте за вступительным видео в STS - https://identity.thinktecture.com/download/startersts/v1/StarterSTS_InitialSetup.wmv
- Следуйте инструкциям по ASP.NET http://identity.thinktecture.com/download/starterSTS/v1/StarterSTS_FederatingWebApps.wmv
- Создайте новый MVC-проект в VS 2010
- В проекте щелкните правой кнопкой мыши, выберите "Добавить ссылку STS" и выполните те же действия мастера, что и приложение WebForms. (чтобы добавить информацию WIF в файл web.config.)
Теперь, когда вы пытаетесь войти в свое приложение MVC, вы будете использовать провайдер удостоверений StarterSTS, и он запишет вас в журнал.
Если вы отлаживаете какие-либо из ваших методов контроллера, вы увидите, что у вас есть WIF "ClaimsPrincipal" (который реализует IPrincipal и обратно совместим)
Следует отметить, что в учебниках только подлинная проверка подлинности.
Чтобы иметь возможность выйти из приложения MVC...
Добавить ссылку на Microsoft.IdentityModel
( "известная" ошибка заключается в том, что она не отображается в VS2010 Add Reference Dialog, поэтому вам нужно ссылаться на dll непосредственно в C:\Program Files\Reference Assemblies\Microsoft\Windows Identity Foundation\v3.5\Microsoft.IdentityModel.dll)
В шаблоне метода MVC AccountControllers LogOff вы можете позвонить...
WSFederationAuthenticationModule.FederatedSignOut(null, new Uri("https://RP/"));
где RP - это URI вашей собственной полагающейся стороны MVC.
Как только вы настроите все это, просто использовать другую STS, такую как ADFS (службы федерации Active Directory). (так как вам не нужно ничего делать, кроме как перенастроить приложение для его использования.)
В качестве дополнительной заметки больше экранов может быть найдено здесь.
Надеюсь, это поможет. Это все немного минное поле: -)
Ответ 2
Вот короткая статья высокого уровня, которая должна охватывать основы здесь.
Для реального образца кода Microsoft Identity Developer Training Kit содержит примеры в ASP.NET(а также Silverlight и т.д.).
Кроме того, Microsoft опубликовала длинный PDF, называемый "Краткое руководство по идентификации и контролю на основе претензий" , который должен быть полезной ссылкой (глава 3).
Ответ 3
Как только вы поймете, как WIF работает с ASP.NET WebForms, посмотрите здесь здесь, чтобы создать настраиваемый атрибут авторизации в ASP.NET MVC
Ответ 4
Простой пример MVC + WIF можно найти в главе "Федерация с несколькими партнерами" руководства, упомянутого выше. Прямая ссылка здесь: http://msdn.microsoft.com/en-us/library/ff359105(v=PandP.10).aspx
Основы его работы описаны здесь: http://blogs.msdn.com/b/eugeniop/archive/2010/04/03/wif-and-mvc-how-it-works.aspx