2023-02-16 307
据我所知,.NET成员资格记录LastUserlogin的基本实现,但不跟踪每个登录,我现在需要做的事情.我已经完成了一些研究,我很确定一种方法是创建一个自定义类,将当前提供程序扩展到此功能,并将事件表添加到模式以记录每个登录.
我已经看到了一些关于这个的文章 – 最接近的可能是来自scott mitchell 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();
}
所以我有一个小问题,我注意到applicationname是空白的,当我尝试在web.config中将它更改它时,它导致了一个错误获取普照列命令但我想我觉得我可以解决它.
现在我需要做的是要完成的是将此与登录页面绑定到登录页面,我认为我可以根据下面的提示进行.完成后,我会在完成答案时发布.
我们只是创建了一个扩展SqlMembershipProvider的类,覆盖ValidateUser方法以执行我们想要的额外逻辑. (您只需要更改Web.config文件的<membership>部分以使用此新会员提供程序).
编辑
对此真的没有太大的.您在架构中创建一个表,从而指的是标准隶属表中的Guid基于用户ID.您创建一个类来管理与此表的交互.您创建会员提供者:
public class MyMembershipProvider : SqlMembershipProvider
{
public override bool ValidateUser(string username, string password)
{
bool validated = base.ValidateUser(username, password);
if (validated)
{
MembershipUser user = GetUser(username, false); // built in to SqlMembershipProvider
new LoginTracker().RegisterLogin((Guid)user.ProviderUserKey);
}
return validated;
}
}
然后您在web.config中注册此提供程序:
<membership defaultProvider="MyMembershipProvider" userIsOnlineTimeWindow="60">
<providers>
<clear/>
<add name="MyMembershipProvider" ... type="MyAssembly.MyNamespace.MyMembershipProvider, MyAssembly"/>
</providers>
</membership>
简单!
您需要实现自定义成员HSIP提供程序.看看这个: http://msdn.microsoft.com/en-us/library/f1kyba5e.aspx
以上所述是小编给大家介绍的有什么好办法可以扩展.Net会员制来跟踪用户的登录情况?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/33859.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态