Я обнаружил, что лучшим примером для начала является Dominick Baiers StarterSTS.
Даже если вы не используете это в качестве STS, учебники на сайте являются отличной отправной точкой. Специальных учебных пособий по ASP.NET MVC не существует, но я работаю так же, как веб-формы ASP.NET.
Итак, короче ...
- Загрузить 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, поэтому необходимо ссылаться на dll напрямую в C: \ Program Files \ Reference Assemblies \ Microsoft \ Windows Identity Foundation \ v3.5 \ Microsoft.IdentityModel.dll)
В шаблонном методе LogOff MVC AccountControllers теперь можно вызывать ...
WSFederationAuthenticationModule.FederatedSignOut(null, new Uri("https://RP/"));
где RP - URI вашей собственной проверяющей стороны на основе MVC.
Как только вы все это настроите, использовать другую STS, такую как ADFS (службы федерации Active Directory), очень просто. (поскольку вам не нужно ничего делать, кроме как перенастроить свое приложение для его использования.)
В качестве дополнительного примечания, больше скриншотов можно найти здесь .
Надеюсь, это поможет. Это все немного минное поле: -)