Проблема со страницей входа FBA в SharePoint

У меня есть сайт sharepoint FBA с настраиваемым кодом входа (см. Ниже). Когда пользователь выходит из системы, я передаю значение Cookie в FormsAuthentication.RedirectFromLoginPage(userName, false);. До сих пор он работает нормально.

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

Есть ли способ пройти процесс входа в систему, если пользователь вводит URL-адрес сайта sharepoint и перенаправляется на сайт shareoint.

Пожалуйста, гуру, выручайте меня.

    try
    {
        if (Request.Cookies[authCookie].Value.Length > 0 || Request.Cookies[authCookie].Value != null || Request.Cookies[authCookie].Value != "")
        {
            userName = Request.Cookies[authCookie].Value;
        }
    }
    catch (Exception ex)
    {
        Response.Redirect("https://qa.company.com/appssecured/login/servlet/LoginServlet?TARGET_URL=" + Request.Url);
    }
    if (true)
    {
        userName = Request.Cookies[authCookie].Value;
        FormsAuthentication.RedirectFromLoginPage(userName, false);
    }

Web.Config

<authentication mode="Forms">
  <forms loginUrl="LoginAuth.aspx" timeout="2880" enableCrossAppRedirects="false" />
  <!--      <forms loginUrl="/_layouts/login.aspx" />-->
</authentication>

person James123    schedule 06.03.2012    source источник
comment
Похоже, вы неправильно очищаете файлы cookie после завершения сеанса. Существует событие уровня приложения для окончания сеанса. Однако вам может потребоваться проактивно очистить сеанс пользователя, если вы хотите более немедленного ответа, состояние сеанса на стороне сервера имеет продолжительность жизни 20 м, но его можно настроить в web.config   -  person Glenn Ferrie    schedule 06.03.2012
comment
Пользователь должен выйти из системы на qa.company.com сайте: это можно сделать автоматически с помощью ссылки на страницу автоматического выхода (на сайте target, которая затем перенаправляет на окончательный URL). Помните, что файлы cookie (auth / session) предназначены для для каждого домена, поэтому вход / выход из одного домена не повлияет на другой. Есть федерация / Office365 и другая магия для включения широкого единого входа, но это еще один зверь.   -  person    schedule 06.03.2012
comment
Почему страница входа в систему не вызывается каждый раз, когда мы заходим на сайт?   -  person James123    schedule 06.03.2012
comment
Вы используете /_layouts/SignOut.aspx? Если да, то он должен позаботиться об очистке файлов cookie за вас.   -  person Rikard Uppström    schedule 07.03.2012


Ответы (1)


Почему бы не использовать

FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();

Это должно правильно очистить cookie и перенаправить на страницу входа.

person Kamil    schedule 19.03.2012