ASP.NET MVC FormsAuthentication.SignOut не работает - PullRequest
0 голосов
/ 10 сентября 2009

Я пытаюсь использовать form.signout, но иногда он не выходит из системы, и пользователь все еще может заходить на сайт.

Как я могу решить это? Я также настроил аутентификацию форм web.config, но она все еще не работает.

Я использую FormsAuthentication для аутентификации пользователя, проходящего его логин.

Спасибо !!

Ответы [ 2 ]

1 голос
/ 10 сентября 2009

Я не знаю, в чем причина, но несколько вещей, которые вы могли бы рассмотреть / попробовать

  • действительно ли они могут посещать страницы, сгенерированные сервером, или они просто возвращаются к локально кэшированным версиям? Что происходит, когда они вызывают постбэк с кодом, проверяющим, аутентифицированы ли они, работает ли он или нет? Я думаю, что более поздние значения означают, что они вышли из системы, но просматривают кэшированные версии авторизованной страницы. В этом случае вы хотите указать клиенту не кэшировать страницы, используемые для экземпляров:

    Response.Cache.SetExpires (DateTime.UtcNow.AddMinutes (-1)); Response.Cache.SetCacheability (HttpCacheability.NoCache); Response.Cache.SetNoStore ();

  • Вы можете попробовать вручную установить срок действия файла cookie, но это хак

    FormsAuthentication.SignOut (); Context.Response.Cookies.Item (FormsAuthentication.FormsCookieName) .Expires = Date.Now; Response.Redirect ( "~ / Somewhere.aspx");

0 голосов
/ 10 сентября 2009

Имеет ли пользователь домен (или родительский домен) на своих доверенных сайтах или сайтах интрасети? Недавно я столкнулся с некоторыми проблемами, когда пользователь проходит проверку подлинности, но анонимно, когда это правда. В моем случае это также могло быть, что родительский сайт был когда-то настроен, чтобы разрешить интегрированную проверку подлинности Windows. С тех пор я удалил это, но, похоже, это не помогло. Я еще не перезапустил IIS, чтобы посмотреть, будет ли это иметь эффект. Я прибег к проверке того, что пользователь аутентифицирован и неанонимен, чтобы убедиться, что отображаются правильные части представления. Это на самом деле более точно, хотя мой код входа в систему должен предотвратить анонимный вход.

...