FormsAuthentication.SetAuthCookie через сервис (или другие удаленные средства) - PullRequest
0 голосов
/ 12 ноября 2009

В настоящее время мы переносим часть приложений для внутренней сети в MojoPortal (приложение cms с открытым исходным кодом). MP использует FormsAuth по умолчанию, и мы настроили его для аутентификации в нашем текущем хранилище Active Directory.

При этом мы стремимся автоматически регистрировать пользователей из текущей системы в новую систему, чтобы обеспечить беспроблемную работу. Новая система (mojo), расположенная на другом сервере, чем текущая система. Оба живут в одном домене "company.com" с разными поддоменами.

Mojo, проверяет аутентификацию с помощью файла cookie FormsAuthentication, который создается, когда пользователь входит в систему через интерфейс mojo. Мы хотим восстановить эту функцию удаленно. Я понимаю, что FormsAuth основан на MachineKey и живет в одном веб-экземпляре IIS, но мне любопытны любые идеи, которые могут возникнуть у сообщества.

Текущие «лучшие» догадки, которые мы придумали здесь:

Создание веб-службы WCF, которая находится в виртуальном каталоге на сайте mojo, принимает имя пользователя / пароль и создает cookie. Это не проверено, так как мы не уверены, повлияет ли это на клиента.

Перенаправить пользователя на промежуточную страницу под mojo, которая принимает имя пользователя / пароль и создает cookie, после чего перенаправляет пользователя на нужную страницу mojo.

При этом MojoPortal используется в качестве поставщика, но реальная проблема заключается в том, как удаленно создать файл cookie FormsAuthentication.

Дополнительная справочная информация:

Текущая система уже аутентифицируется в том же хранилище AD, поэтому не стоит беспокоиться о создании файлов cookie для несуществующих пользователей. Оба сервера находятся в одном домене AD (физически они находятся рядом друг с другом). Исходный код текущей системы доступен нам и может быть изменен.

1 Ответ

0 голосов
/ 12 ноября 2009

Если я правильно понимаю, вы пытаетесь сделать единый вход между своей прежней системой и mojo? Я делал нечто подобное в прошлом. Наша устаревшая система создает токен аутентификации и передает его второй системе. Затем выполняется вызов веб-службы обратно в унаследованную систему для проверки токена (вам нужно добавить несколько правил относительно того, что делает токен аутентичным. Например: одноразовое использование, тайм-ауты и т. Д.). Если устаревшая система проверяет токен, тогда устанавливается cookie.

FormsAuthentication.SetAuthCookie (, true)

оттуда перенаправить обратно на главную страницу mojo.

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