<machineKey decryptionKey = «Автогенерация»… игнорируется IIS. Не сделает недействительными файлы cookie предыдущей сессии

(See question below for more context):

Есть ли ситуации, в которых

<machineKey
      validationKey="AutoGenerate,IsolateApps"
      decryptionKey="AutoGenerate,IsolateApps"/>

в web.config не удалось бы автоматически сгенерировать новый machineKey при перезапуске пула приложений? Это поведение, которое я вижу ...

Я использую стандартную ASP.NET FormsAuthentication в приложении MVC. Если я войду в систему с помощью пользователяFormsAuthentication.GetAuthCookie и не использовать постоянный файл cookie (полагаясь на сеанс браузера для запоминания моего авторизованного состояния), я ожидаю, что переработка пула приложений IIS сделает недействительными знания сеанса об этом файле cookie и, таким образом, выйдет из системы всех пользователей, которые У вас нет постоянных файлов cookie.

Это происходит в одной из моих установок IIS (XP), но в другой конфигурации IIS (Server 2K3) файл cookie FormsAuthentication (под стандартным именем «.ASPXAUTH») остается действительным и продолжает авторизовывать пользователя.

Кто-нибудь знает, почему это происходит или какая конфигурация контролирует это поведение?

Очевидно, что переработка пула приложений не контролирует, отправляет ли браузер cookie-файл .ASPXAUTH или нет (пока я не закрыл свой браузер и срок действия cookie-файла не истек).

In the case of the IIS install that properly denies authentication after a recycle, I can see the incoming cookie in Request.Cookies during the Application_BeginRequest event...but once control moves to the next event available in Global.asax.cs (Application_AuthenticateRequest), the cookie has been removed from the Request.Cookies collection.

Почему этого не происходит для обеих конфигураций IIS / ASP.NET?

В случае, если это не ясно, более простым способом формирования вопроса является:

ПочемуHttpContext.Current.Request.Cookies[".ASPXAUTH"] меняться от{System.Web.HttpCookie} обнулять, когда я перехожу, в одном запросе, изApplication_BeginRequest вApplication_AuthenticateRequest?

Больше отладочной информации:

Если я прикреплю следующий код к событию FormsAuthentication_OnAuthenticate Global.asax.cs ...

var cookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (cookie != null)
{
    var val = cookie.Value;
    try
    {
        FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(val);
    }
    catch (Exception)
    {
    }
}

... тогда во время запросаbefore Я перерабатываю пул приложений IIS, исключений не будет. После перезапуска пула приложений IIS, когда из браузера отправляется точно такой же файл cookie .ASPXAUTH, возникает криптографическое исключение (& quot; заполнение недопустимо и не может быть удалено. & Quot;)

Почему это?

Ответы на вопрос(2)

Ваш ответ на вопрос