Фундаментальное различие между общим принципалом и аутентификацией в формах в контексте ASP.NET ?

#asp.net #forms #generics #authentication #principal

#asp.net #формы #общие #аутентификация #принципал

Вопрос:

В чем именно разница между аутентификацией в формах и общим участником? Если я использую аутентификацию в формах в ASP.NET какое преимущество я получил бы, внедрив общий принципал, а также общую идентификацию по сравнению с их отсутствием? Это предполагает, что это два разных подхода к одному и тому же.

Однако, если это не два разных подхода к одному и тому же, то что именно предоставляет нам Generic Principal, чего не дает только аутентификация Forms?

Ответ №1:

Общий принципал позволяет хранить информацию о вашем пользователе в объектах, которые затем можно привязать к Context.User. Это означает, что вместо того, чтобы каждый раз обращаться к базе данных для получения информации, ее можно сохранить в сеансе. На самом деле это не относится к аутентификации forms, которая представляет собой просто способ входа пользователей в систему и выхода из нее и сохранения их входа внутри файла cookie.

Комментарии:

1. Спасибо за ваш ответ. Что я могу сделать или какое преимущество у меня есть, если я привязываю объект к Context.User? Я все еще не понимаю, при каком сценарии я хотел бы реализовать общего принципала (другими словами, почему недостаточно аутентификации в формах?) Причина, по которой я спрашиваю, заключается в том, что я видел ряд руководств, которые также реализуют общий принципал с аутентификацией в формах, и ряд руководств, которые этого не делают. В чем же тогда разница?

2. например, взгляните на эту статью 15seconds.com/issue/041208.htm . Перейдите к ASP.NET раздел аутентификации, и вы увидите, что автор использует аутентификацию в формах, а затем в запросе global.asax Application_AuthenticateRequest они создают нового общего участника. Почему новый общий участник создается в Application_AuthenticateRequest, когда приложение работало бы так же хорошо без его создания. Кроме того, если я не ошибаюсь, аутентификация в формах также создает общий принципал в своей реализации и связывается с httpcontext.current.user .