Ответ 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). (так как вам не нужно ничего делать, кроме как перенастроить приложение для его использования.)
В качестве дополнительной заметки больше экранов может быть найдено здесь.
Надеюсь, это поможет. Это все немного минное поле: -)