是否可以在不更新LastActivityDate的情况下访问配置文件?

Wil*_*Joe 11 asp.net asp.net-mvc asp.net-membership asp.net-profiles

在asp.net中(使用MVC,但这也经常发生)

Profile.GetProfile(username);
Run Code Online (Sandbox Code Playgroud)

将更新该用户的LastActivityDate.当其他人正在查看该用户的个人资料时,无意这样做.

在成员资格类中,您可以指定是否使用第二个参数更新此日期,如下所示:

Membership.GetUser(username, false); // doesn't update LastActivityDate
Membership.GetUser(username, true); // updates LastActivityDate
Run Code Online (Sandbox Code Playgroud)

无论如何在没有编写我自己的提供者的情况下在Profile提供者中做类似的事情?

Rad*_*ský 9

您可能会使用一个丑陋的解决方法,其中包括更改aspnet_Profile_GetProperties存储过程.这个负责在访问用户配置文件时获取属性.

打开此过程,您将在底部找到以下代码:

IF (@@ROWCOUNT > 0)
BEGIN
    UPDATE dbo.aspnet_Users
    SET    LastActivityDate=@CurrentTimeUtc
    WHERE  UserId = @UserId
END
Run Code Online (Sandbox Code Playgroud)

删除它以停止更新LastActivityDate.LastActivityDate打电话时,您仍会得到更新Membership.GetUser(username, true);.

  • 是的,编辑sproc是我最终做的.在某些时候,我可能会将我网站的个人资料部分重新编写为自定义或使用第三方,但我需要快速修复. (3认同)