Отменить сеанс в ASP.NET MVC global.asax - PullRequest
0 голосов
/ 27 апреля 2018

У меня тут дилемма. Я реализовал SSO Login через разные проекты ASP.Net MVC 5, и все отлично работает с Identity и Forms Authentication. Но у меня есть требование. Если пользователь никогда не входил в приложение до тех пор, пока он не войдет в систему автоматически, он должен щелкнуть «Войти» и подписаться на это приложение. Поэтому для пользователя, который никогда не заходил в приложение, оно должно выглядеть так же, как и для пользователя, который не вошел в систему. Надеюсь, с этим все понятно.

Я использую общий ключ компьютера для проверки подлинности приложений и форм для создания заявки.

Итак, я выполняю проверку в Global.asax в методе Application_PostAuthenticateRequest и Application_AcquireRequestState, чтобы увидеть, подписан ли текущий зарегистрированный пользователь ранее на приложение, если у него ничего не происходит, он входит как зарегистрированный у пользователя нормально. Но если он не подписался, он должен отказаться от сеанса.

Я пытался использовать FormsAuthentication.SignOut(), но он уничтожает cookie и удаляет его аспект sso. И Session.Abandon() ничего не делает. Поэтому мой вопрос заключается в том, как отказаться от сеанса или текущей проверки подлинности с помощью форм, не удаляя файлы cookie, чтобы при посещении любого другого приложения, на которое он подписан, у него не возникало никаких проблем.

Спасибо.

1 Ответ

0 голосов
/ 28 апреля 2018

Я нашел способ сделать это, мне пришлось изменить имя файла cookie FormsAuthentication и проверить, существует ли он с другим именем, каждый раз, когда я хочу добавить свою пользовательскую проверку, а затем использовать FormsAuthentication.signOut () и присвоение Current.User универсальный пустой пользователь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...