Как устранить аутентификацию в моем приложении MVC, которое вызывается из приложения asp.net формы - PullRequest
0 голосов
/ 15 июня 2010

Любопытно, какие рекомендации кто-нибудь есть.

У меня есть существующее приложение форм asp.net, которое выполняет проверку подлинности с помощью форм и имеет личную личность.

В приложении есть ссылка на анкету, которую я хотел бы разработать отдельно в приложении asp.net MVC, но я не хочу, чтобы пользователи нажимали на ссылку и запрашивали имя пользователя и пароль, я хотел бы как они, чтобы иметь возможность без проблем начать заполнять анкету.

Есть ли способ как-то перенести аутентификацию из одного приложения .net в другое? Я хотел бы иметь возможность передавать такие вещи, как UserRole.

Какой лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 15 июня 2010

Если вы используете один и тот же MachineKey в обоих приложениях, а приложение MVC находится на одном и том же сервере, я думаю, что оно будет повторно использовать куки-файл auth и просто будет считать их вошедшими в систему. См. Эту статью MSDN о настройке MachineKey, особенно раздел , разделяющий заявки на аутентификацию между приложениями . Обратите внимание, что предполагается, что оба приложения находятся на одном сервере. Если они находятся на разных серверах, вам нужно исследовать некоторые другие механизмы - скажем, создание одноразового билета для URL-адреса, который может быть использован удаленной системой через веб-вызов на исходный сервер, которым является пользователь. Это может быть не полная реализация центральной системы аутентификации , но в том же духе. Просто убедитесь, что вы используете SSL для шифрования соответствующих битов, чтобы избежать атак «человек посередине».

1 голос
/ 15 июня 2010

Используя Windows Identity Foundation (WIF), вы можете добиться единого входа.

В WIF служба под названием Security Token Service (STS) выдает токен с утверждениями, который может быть любым, что вы хотите объявить о проверяемом пользователе, например его ролях. В ваших приложениях вы можете использовать свойства Page.User, Controller.Page или Thread.Current.Principal для проверки утверждений пользователя (хотя, если вы будете использовать только утверждения ролей, вы можете использовать метод IsInRole для простоты).

Вы можете легко создать STS, используя инструменты для VS, включенные в WIF SDK. Проверка подлинности с помощью форм будет выполняться в STS, а не на сайте Web Forms, и оба сайта должны иметь доверительные отношения с STS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...