2011-02-02 27 views
1

我有以下线在控制器ASP.NET MVC会员GetNumberOfUsersOnline返回不正确的值

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

我登录作为管理员,但是上面是返回一个0值,由QickWatch验证。我期待的1

值我也有在控制器

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

这是返回的2正确的值以下,包括我自己在内。

其他人在这方面有问题吗?

+0

您是如何登录的? – hunter 2011-02-02 13:07:30

+0

您能否向我们提供您的会员资格配置? – frennky 2011-02-02 14:33:35

回答

0

MSDN:

GetNumberOfUsersOnline返回 用户数当前 应用程序名称,其中 最后活动日期比 当前时间少 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>