Как реализовать альтернативный вход в систему для аутентификации форм asp.net?
-
12-10-2019 - |
Вопрос
У меня есть существующий веб-сайт, использующий проверку подлинности с помощью форм с помощью поставщика Sql.Теперь я пытаюсь интегрироваться с другим веб-сайтом и использовать их механизм аутентификации.Я уже могу проверить пользователя и пытаюсь автоматически войти в систему в своем приложении.Вот код для «тихого» входа:
if (user != null) // logged in!
{
IPrincipal principal = new MyPrincipal(user);
FormsAuthentication.SetAuthCookie(user.ScreenName, true);
HttpContext.Current.User = principal;
Response.Redirect("~/Default.aspx");
}
и это работает, за исключением того, что проверка подлинности с помощью форм переопределяет HttpContext.Current.User
к тому времени, когда я сделаю это «default.aspx».Есть ли способ обойти поставщиков ролей и членства в формах?
Решение
Если вы используете собственный участник, он должен устанавливаться при каждом запросе к веб-серверу;это не сохраняется.Добавление кода для его перезагрузки в global.asax решило бы проблему.Другие тоже создали HTTP-модуль для этого.
ХТХ.