據我所知,.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