Я использую Идентификацию Формы и отправляю запрос Aajx к серверу для идентификации. На основе результата json клиент решает, куда пойти и что сделать. Это - причина, я не использую FormsAuthentication. RedirectFromLoginPage, чтобы не вмешаться ajax/json ответ.
В этом Запросе случая. Ложная прибыль IsAuthenticated, даже после утверждения пользователя с Членством. ValidateUser. Тогда я установил использование печенья
FormsAuthentication.SetAuthCookie(username, false);
Хотя второй параметр, постоянное печенье, ложный, печенье все еще действительно через сессии браузера.
Любая идея, как обратиться с Просьбой. IsAuthenticated работают, не используя FormsAuthentication. RedirectFromLoginPage?
Вам необходимо обновить текущую руководитель безопасности по запросу. Когда вы звоните ответ. Redirect (...)
Производится новый запрос, и директор Security Rinitialized и Preque.isauthentized возвращает True в вашем случае. FormandAuthentication.redirectromLoginPage
Внутренние звонки Ответ. Перенаправить (...)
. Вы можете вручную возобновить руководитель безопасности за текущий запрос, как это:
public void RenewCurrentUser()
{
System.Web.HttpCookie authCookie =
System.Web.HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
FormsAuthenticationTicket authTicket = null;
authTicket = FormsAuthentication.Decrypt(authCookie.Value);
if (authTicket != null && !authTicket.Expired)
{
FormsAuthenticationTicket newAuthTicket = authTicket;
if (FormsAuthentication.SlidingExpiration)
{
newAuthTicket = FormsAuthentication.RenewTicketIfOld(authTicket);
}
string userData = newAuthTicket.UserData;
string[] roles = userData.Split(',');
System.Web.HttpContext.Current.User =
new System.Security.Principal.GenericPrincipal(new FormsIdentity(newAuthTicket), roles);
}
}
}
Formandauthenticate.SetauthCookie
Метод создает аутентификацию билет на поставляемое имя пользователя и добавляет его в коллекцию файлов cookie ответ или к URL, если вы Использование аутентификации счеты.
Ref: MSDN
взглянует на поток управления аутентификацией . Cookie Authentication Cookie установлено в коллекцию Cookie Rescount, а также следует наблюдать на уровне протокола HTTP (например, используйте FireCookie или Fiddler2, чтобы проверить это).
Членство только проверяет имя пользователя / пароль. Ни членство, ни SetauthCookie ()
изменит текущий запрос. Они ожидают отправить печенье обратно в звонящий, а следующий запрос - это когда свойства, такие как , вернутся Isauthenticate
.
Обратите внимание, что вы можете переопределить и расширять эти процессы процессов с использованием пользовательских IIDETITY
и IPRINCIPIPAL
и подключитесь к событиям аутентификации, если вам нужно.
также посмотрите на с использованием аутентификации форм с ASP.NET AJAX