Прошедшие проверку пользователи после сброса IIS в .net - PullRequest
5 голосов
/ 14 июня 2011

Я создаю веб-приложение .net и использую проверку подлинности с помощью форм с помощью файлов cookie, чтобы запомнить, вошел ли пользователь в систему:

<authentication mode="Forms">
  <forms timeout="4320" cookieless="UseCookies" loginUrl="~/account.aspx" name="test" slidingExpiration="true" /> 
</authentication>

Но после сборки, изменения web.config или выполнения сброса IIS первая загружаемая страница показывает, что я не вошел в систему. Но если я обновлю страницу снова, она покажет, что я вошел в систему, даже если я не вошел в систему. ничего не делать.

Похоже, он помнит, что я вошел в систему, но только после загрузки первой страницы.

Это обычно? У меня что-то неправильно настроено в файле web.config? Это проблема только с localhost?

Ответы [ 2 ]

4 голосов
/ 14 июня 2011

Хорошо, конечно, это была моя собственная ошибка. Оказывается в моем web.config у меня была настройка:

<appSettings configSource="appSettings.config" /> 

Проблема в том, что appSettings.config не существовало в моем проекте. После того, как я удалил эту строку (она была из стандартного кода и не нуждалась в ней), она заработала.

Так что, по-видимому, при первой загрузке .net недоволен тем, что этот файл не существует, так как он пытался загрузить конфигурацию в первый раз, но после первой загрузки его уже не волнует (это примерно так же технически, как и я). можно получить).

1 голос
/ 14 июня 2011

Проблема в том, что сеанс сбрасывается.Хотя у вас есть печенье, вам нужно сделать еще одну вещь.

В разделе подтверждения пользователя убедитесь, что установлен флажок Запомнить меня, т. Е.

 FormsAuthentication.RedirectFromLoginPage ("TheirUserId", Persist.Checked)

- это значение Persist.Обратитесь к http://msdn.microsoft.com/en-us/library/xdt4thhy.aspx для получения дополнительной информации

...