net核心
概述
.NET Core使用。net Core提供登录钩子服务和依赖注入框架。钩子是API调用,它将登录信息传递给tCell代理作为监视和保护的一部分账户收购.tCell代理在启动时初始化钩子依赖注入.如果没有安装tCell,这些调用将不执行任何操作,因此不需要安装tCell代理来运行代码。
服务注册
在应用程序中注册钩子启动类。
- 添加
使用Tcell.Agent.AspNetCore;
到Startup类顶部的名称空间声明 - 添加
services.AddTcellHooks ();
到配置服务方法。请参阅以下示例:
示例configureservices方法
1public void ConfigureServices(IServiceCollection services)2{3.services.AddMvc ();4services.AddTcellHooks ();5}6
使用钩子
一旦注册为服务,代理登录钩子就会被标准的。net Core控制器使用依赖注入机制。按照以下步骤实施:
- 将登录钩子作为成员变量存储在构造函数中,该构造函数由依赖项注入填充。这里有一个例子:
样本钩子依赖注入
1使用tcell.agent.hooks;2...3.45私有只读ILoginHooks _loginHooks;67公共LoginController (ILoginHooks loginHooks)8{9_loginhooks = loginhooks;10}11
- 接下来,调用钩子'LoginSuccess或者LoginFailed在执行认证的控制器方法中。
LoginSuccess
LoginSuccess方法有两种变体——一种有密码,一种没有密码。当这个信息被输入账户收购功能,如果密码可用,我们建议使用该方法为帐户收购算法提供其他数据。
LoginSuccess API定义
1公共void loginsuccess(字符串用户名);2public void LoginSuccess(string userName, string password); / /密码
参数:
- 用户名:用户的用户名成功登录
- 密码:用户的密码成功登录;看密码散列章节以了解密码使用的更多细节。
LoginFailed
LoginFailed有4种变体,都需要用户名。有些具有可选的password或userValid参数,分别表示登录失败的密码和传递的用户名是否有效。所有这些信息都被输入账户收购功能,所以我们建议使用最有信息的方法,如果可用的话。
LoginFailed API定义
1public void LoginFailed(string userName);2public void LoginFailed(string userName, string password);3.public void LoginFailed(string userName, bool userValid);4public void LoginFailed(string userName, string password, bool userValid);5
参数:
- 用户名:用户的用户名未能登录
- 密码:用户密码未能登录;看密码散列额外使用详细信息部分
- userValid:登录失败的用户名是否合法
例子
下面是一个简单控制器的例子,它基于简单的硬编码认证算法发送一个登录钩子事件。它假定一个助手模型LoginModel
.为简单起见,还提供了没有命名空间的控制器。
使用钩子的样品控制器
1使用Microsoft.aspnetcore.mvc;2使用tcell.agent.hooks;3.4公共类logincontroller:控制器5{6私有只读ILoginHooks _loginHooks;78公共LoginController (ILoginHooks loginHooks)9{10_loginhooks = loginhooks;11}1213public IActionResult Default(LoginModel模型)14{15var validUser = model。用户名= =“用户名”;16var validPassword = model。密码= =“密码”;17if(有效用户&& validpassword)18{19_loginHooks.LoginSuccess(模型。用户名、model.Password);20.}21其他的22{23_loginhooks.loginfailed(model.Username,Model.Password,Validuser);24}25还好();26}27}
这个页面对你有帮助吗?