У меня есть веб-сайт, над которым я работаю, который имеет развертывание как в интрасети, так и в Интернете. Единственная разница между ними — пара настроек конфигурации.
Интернет-версия работает нормально, так как она просто использует аутентификацию с помощью форм (которая определена в его веб-конфигурации), и если пользователь не вошел в систему, он перенаправляется на страницу входа.
Интранет-версия немного сложнее... когда пользователь впервые заходит на сайт, объект принципа контекста http правильно устанавливается с помощью WindowsPrincipal, но, используя эту информацию, я подтверждаю, что пользователю разрешен доступ к приложению, а затем создаю свой собственный IPглавный экземпляр.
Учитывая это, я хочу сделать здесь несколько вещей... Я хочу использовать объект WindowsPrincipal в качестве основы для аутентификации пользователя, но затем с этого момента вперед использовать аутентификацию форм (т. е. использовать файл cookie для хранения сведений об аутентификации и т. д. ). Мне также нужно, чтобы экземпляр принципа, который я извлекаю из контекста HTTP, принадлежал моему типу IPrinciple.
Как мне лучше всего это сделать? Как и в том, что я должен смотреть на Session_Start global.asax для выполнения логики аутентификации, а затем каким-то образом заставить его хранить мой собственный IPrinciple (поэтому для любого запроса после этого момента экземпляр является моим собственным принципом), или мне лучше всего делать что-то с Application_AuthenticateRequest .
Ура Энтони