Пример приложения MVC для Windows Identity Foundation - PullRequest
17 голосов
/ 30 апреля 2010

Существует ли пример приложения для использования WIF с приложением ASP.NET MVC? Может ли кто-нибудь помочь мне начать пытаться интегрировать обе эти технологии?

Ответы [ 4 ]

23 голосов
/ 10 мая 2010

Я обнаружил, что лучшим примером для начала является Dominick Baiers StarterSTS.

Даже если вы не используете это в качестве STS, учебники на сайте являются отличной отправной точкой. Специальных учебных пособий по ASP.NET MVC не существует, но я работаю так же, как веб-формы ASP.NET.

Итак, короче ...

  1. Загрузить WIF и WIF SDK - http://msdn.microsoft.com/en-us/evalcenter/dd440951.aspx
  2. Скачать StarterSTS - http://startersts.codeplex.com/
  3. Следуйте за вступительным видео STS - https://identity.thinktecture.com/download/startersts/v1/StarterSTS_InitialSetup.wmv
  4. Следуйте учебнику по ASP.NET http://identity.thinktecture.com/download/starterSTS/v1/StarterSTS_FederatingWebApps.wmv
  5. Создание нового проекта MVC в VS 2010
  6. В проекте щелкните правой кнопкой мыши, выберите «Добавить ссылку на 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), очень просто. (поскольку вам не нужно ничего делать, кроме как перенастроить свое приложение для его использования.)

В качестве дополнительного примечания, больше скриншотов можно найти здесь .

Надеюсь, это поможет. Это все немного минное поле: -)

3 голосов
/ 12 мая 2010

Существует небольшая статья высокого уровня, которая должна охватывать основы здесь .

Для реального примера кода Microsoft Identity Developer Training Kit включает примеры в ASP.NET (а также Silverlight и другие).

Кроме того, Microsoft опубликовала длинный PDF-файл под названием «Краткое руководство по идентификации и управлению доступом на основе утверждений» , который должен стать полезным справочным материалом(глава 3).

2 голосов
/ 25 мая 2010

Простой пример 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

2 голосов
/ 12 мая 2010

Как только вы поймете, как WIF работает с ASP.NET WebForms, взгляните на сообщение здесь , чтобы создать собственный атрибут авторизации в ASP.NET MVC

...