FormsAuthentication.SetAuthCookie в OnAuthorization пользовательского атрибута

Я пытаюсь установить файл cookie авторизации в OnAuthorization моего пользовательского атрибута в приложении asp.net mvc (C#).

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

Я использовал следующее, чтобы установить файл cookie авторизации,

//set forms auth cookie
FormsAuthentication.SetAuthCookie(strUserName, true);

Но когда я проверяю HttpContext.User.Identity.IsAuthenticated, он возвращает false.

Как установить файл cookie авторизации в OnAuthorization пользовательского атрибута?


person Prasad    schedule 21.11.2009    source источник


Ответы (2)


После установки файла cookie авторизации вы не будете автоматически заполнять Context.User, вам нужно сделать что-то вроде:

Context.User = new GenericPrincipal (new GenericIdentity (strUserName, "Forms"), null);

где strUserName должно быть ненулевым и не пустым, чтобы IsAuthenticated возвращало true. При следующем запросе Context.User должен быть установлен FormsAuthenticationModule, и вам не придется ничего делать.

person Gonzalo    schedule 21.11.2009
comment
Я использовал его, он работает для текущего запроса. Но когда для следующей страницы/другого запроса. Запрос не аутентифицирован. Не могли бы вы помочь мне здесь. - person Pratik Bhoir; 23.05.2015

Я подозреваю, что вам может потребоваться перенаправить на новую страницу после того, как вы установите файл cookie авторизации, а затем на новой странице проверьте IsAuthenticated. Я не совсем помню порядок, в котором это происходит, но это напоминает мне о проблеме, с которой я столкнулся.

person Jarrett Widman    schedule 21.11.2009