Членство ASP.NET MVC GetNumberOfUsersOnline возвращает неправильное значение - PullRequest
1 голос
/ 02 февраля 2011

У меня есть следующая строка в контроллере

ViewData["UsersOnLineNow"] = Membership.GetNumberOfUsersOnline().ToString();

Я вошел в систему как администратор, но приведенное выше возвращает значение 0, проверенное QickWatch. Я ожидал значение 1.

У меня также есть следующее в контроллере

ViewData["RegisteredUsers"] = Membership.GetAllUsers().Count.ToString();

Это возвращает правильное значение 2, включая меня самого.

У кого-нибудь еще были проблемы в этой области?

1 Ответ

0 голосов
/ 02 февраля 2011

MSDN:

GetNumberOfUsersOnline возвращает количество пользователей на текущий ApplicationName где дата последней активности больше, чем текущее время меньше UserIsOnlineTimeWindow. дата / время последней активности обновляется до текущей даты и времени когда учетные данные пользователя проверены путь ValidateUser или UpdateUser метод или когда вызов GetUser перегрузка, которая не принимает параметров или тот, который использует userIsOnline параметр, чтобы указать, что дата / время должны быть обновлены.

Подсказка: вы можете попробовать установить более высокое значение для UserIsOnlineTimeWindow. Значение по умолчанию составляет 15 минут, в следующем примере я установил его на 60.

<membership defaultProvider="AspNetSqlMembershipProvider"
  userIsOnlineTimeWindow="60">
  <providers>
    <add name="AspNetSqlMembershipProvider"
      type="System.Web.Security.SqlMembershipProvider"
      connectionStringName="ApplicationServices" 
         enablePasswordRetrieval="false" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="false" 
         maxInvalidPasswordAttempts="5" 
         minRequiredPasswordLength="6" 
         minRequiredNonalphanumericCharacters="0" 
         passwordAttemptWindow="10" 
         applicationName="/" />
  </providers>
</membership>
...