Osk*_*lin 12 c# asp.net-mvc asp.net-membership
我正在使用ASP.NET MVC并创建一个公共网站.我需要跟踪在线用户.我看到asp.net中这样做的标准方法是跟踪LastActivityDate
.我的问题是我应该何时更新?
如果我每次用户点击某处都更新它,我会觉得性能退缩.但是,如果我不这样做,那些只能浏览的人将被列为离线状态.
在asp.net MVC中执行此操作的最佳方法是什么?
只需在主页底部放置一个ajax javascript调用即可跟踪此信息.
此时不要担心性能问题.如果它已经实施并且您认为它是一个问题,那么回过头来寻找更好的解决方案.如此简单的东西不应该是性能问题.
试想一下像谷歌分析.它位于数百万页的底部,对这些网站的用户体验几乎没有影响.
刚遇到同样的问题,这是我对MVC用户的回答:
我们的想法是为每个页面加载触发Membership.GetUser("..",true).这将自动更新LastActivityDate.
我把它放在"RegisterGlobalFilters"下的global.asax中:
filters.Add(new MembershipTriggerLastActivityDate());
Run Code Online (Sandbox Code Playgroud)
我创建了一个新类,如下所示:
class MembershipTriggerLastActivityDate : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.User.Identity.IsAuthenticated)
{
MembershipUser user = Membership.GetUser(filterContext.HttpContext.User.Identity.Name, true);
}
base.OnActionExecuting(filterContext);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4135 次 |
最近记录: |