代码之家  ›  专栏  ›  技术社区  ›  WildJoe

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

  •  11
  • WildJoe  · 技术社区  · 14 年前

    在ASP.NET中(使用MVC,但这种情况也经常发生)

    Profile.GetProfile(username);
    

    将更新该用户的上次活动日期。当其他人正在查看该用户的配置文件时,这不是有意的。

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

    Membership.GetUser(username, false); // doesn't update LastActivityDate
    Membership.GetUser(username, true); // updates LastActivityDate
    

    在配置文件提供程序中是否有类似的操作而不编写自己的提供程序?

    2 回复  |  直到 13 年前
        1
  •  9
  •   Radek Stromský    13 年前

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

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

    IF (@@ROWCOUNT > 0)
    BEGIN
        UPDATE dbo.aspnet_Users
        SET    LastActivityDate=@CurrentTimeUtc
        WHERE  UserId = @UserId
    END
    

    删除它以停止更新 LastActivityDate . 你还是会得到 上次活动日期 呼叫时更新 Membership.GetUser(username, true); .

        2
  •  1
  •   Daniel Dyson    14 年前

    您可能会考虑使用其他人编写的提供者,而不是自己编写的提供者。

    Scott Guthrie博客上的这一个包含存储过程,可以通过您自己的代码直接调用这些存储过程来获取信息:

    http://weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx

    此页有一个MSI下载,它安装了一个用于处理自定义配置文件数据的示例应用程序。基于表的概要文件的性能要比默认的ON好得多,在这个缺省的ON中,所有概要文件数据都包含在一个数据库字段中。基于表的查询也更容易直接查询,这将帮助您解决问题。调用示例架构中的存储过程 获取自定义配置文件数据

    否则,只是 直接查询数据库 .

    推荐文章