Проблемы с проверкой подлинности членства в ASP.NET

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

 <authentication mode="Forms">    
     <forms name=".ASPXFORMSAUTH"  timeout="20"/>
  </authentication>

 <authorization>
<allow users="*" />
</authorization>
 <membership defaultProvider="MySqlConnection" userIsOnlineTimeWindow="45">
 <providers>
    <clear />
    <add name="MySqlConnection" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MySqlConnection" 
applicationName="HQChannel" 
enablePasswordRetrieval="true" 
enablePasswordReset="true"
requiresQuestionAndAnswer="false" 
requiresUniqueEmail="true" 
passwordFormat="Hashed" 
minRequiredNonalphanumericCharacters="0" 
minRequiredPasswordLength="6" />
 </providers>
 </membership>

Спасибо за вашу помощь.


person Sara Chipps    schedule 03.02.2009    source источник


Ответы (2)


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

<authorization>
   <allow users="?" />
   <deny users="*" />
</authorization>

Вторая мысль заключалась в том, что вы хотели бы добавить slideExpiration="true" в свой блок аутентификации. Это превратит вход в скользящее окно, поэтому они выходят из системы только через 20 минут бездействия...

<forms name=".ASPXFORMSAUTH" timeout="20" slidingExpiration="true" />
person Scott Ivey    schedule 03.02.2009

Я также хотел бы проверить код и посмотреть, переопределяется ли билет проверки подлинности форм с другим тайм-аутом, как в примере ниже.

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket
(
   1, // version
   txtEmail.Text, // name
   DateTime.Now, // issueDate
   DateTime.Now.AddMinutes(30), // expiration
   false, // isPersistent
   roles, // userData
   FormsAuthentication.FormsCookiePath // cookiePath
 );

Если параметры явно перезаписываются из кода, параметры web.config не будут работать должным образом.

person JC.    schedule 03.02.2009