据我所知,.Net成员资格的基本实现记录了lastuserlogin,但不跟踪每个登录,我现在需要做的事情。我已经做了一些研究,我很确定一种方法是创建一个自定义类,使用此功能扩展当前提供程序,并向模式添加事件表以记录每个登录。什么是扩展.Net成员来跟踪用户登录的好方法
我已经看到了一些关于此的文章 - 最接近可能是从斯科特米切尔http://dotnetslackers.com/articles/aspnet/Tracking-User-Activity.aspx这一个,但它是从2008年11月,我很好奇,如果任何人都可以指向我一个更好的解决方案,或确认这仍然解决这个问题的“最佳”方法。我会想象这是一个相当普遍的要求。我还在使用.Net(使用C#),所以任何和所有信息将不胜感激。
编辑
进展,但没有完全那里。添加以下代码来创建在登录活动表的新纪录:
if (Request.IsAuthenticated)
{
MembershipUser currentUser = Membership.GetUser(false);
string App1 = Membership.Provider.ApplicationName;
string username = currentUser.UserName;
object guid1 = currentUser.ProviderUserKey;
aspnet_CustomActivity login = new aspnet_CustomActivity
{
UserId = (Guid) guid1,
ActivityID = 1, //login
DateTime = dt1,
ApplicationName = App1
};
db.aspnet_CustomActivities.InsertOnSubmit(login);
db.SubmitChanges();
}
所以我有一个小问题,我注意到了应用程序名称是空白的,当我试图改变它在web.config中它导致了错误得到currentUser.username,但我想我可以解决这个问题。
我现在需要完成的工作就是将其绑定到登录页面,我想我可以根据下面的提示来做到这一点。完成后我会再次发布以完成答案。
剥离,这绝对是我期望的正确解决方案......很高兴看到它应该是'简单':)。话虽如此,你能否指出我正确的方向?我没有在标准方法http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider.validateuser.aspx上看到很多文档,所以我不确定如何有效地扩展它。 – nycdan 2011-02-11 20:51:23