Как реализовать альтернативный вход в систему для аутентификации форм asp.net?

StackOverflow https://stackoverflow.com/questions/4501993

Вопрос

У меня есть существующий веб-сайт, использующий проверку подлинности с помощью форм с помощью поставщика 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-модуль для этого.

ХТХ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top