在asp.net(使用MVC,但这也发生在常规)
Profile.GetProfile(username);
将更新该用户的LastActivityDate.当其他人正在查看该用户的个人资料时,这不是打算的.
在会员类中,您可以指定是否使用第二个参数更新此日期,如下所示:
Membership.GetUser(username,false); // doesn't update LastActivityDate Membership.GetUser(username,true); // updates LastActivityDate
有没有办法在配置文件提供者做类似的事情,而不写我自己的提供者?
解决方法
@H_502_15@ 您可能会使用一个丑陋的解决方法,其中包括更改aspnet_Profile_GetProperties存储过程.在访问用户配置文件时,这个负责获取属性.IF (@@ROWCOUNT > 0) BEGIN UPDATE dbo.aspnet_Users SET LastActivityDate=@CurrentTimeUtc WHERE UserId = @UserId END
删除它,以停止更新LastActivityDate.调用Membership.GetUser(username,true);你将会得到LastActivityDate的更新.