net核心

概述

.NET Core使用。net Core提供登录钩子服务依赖注入框架。钩子是API调用,它将登录信息传递给tCell代理作为监视和保护的一部分账户收购.tCell代理在启动时初始化钩子依赖注入.如果没有安装tCell,这些调用将不执行任何操作,因此不需要安装tCell代理来运行代码。

服务注册

在应用程序中注册钩子启动类。

  1. 添加使用Tcell.Agent.AspNetCore;到Startup类顶部的名称空间声明
  2. 添加services.AddTcellHooks ();配置服务方法。请参阅以下示例:
          
示例configureservices方法
1
public void ConfigureServices(IServiceCollection services)
2
3.
services.AddMvc ();
4
services.AddTcellHooks ();
5
6

使用钩子

一旦注册为服务,代理登录钩子就会被标准的。net Core控制器使用依赖注入机制。按照以下步骤实施:

  1. 将登录钩子作为成员变量存储在构造函数中,该构造函数由依赖项注入填充。这里有一个例子:
          
样本钩子依赖注入
1
使用tcell.agent.hooks;
2
...
3.
4
5
私有只读ILoginHooks _loginHooks;
6
7
公共LoginController (ILoginHooks loginHooks)
8
9
_loginhooks = loginhooks;
10
11
  1. 接下来,调用钩子'LoginSuccess或者LoginFailed在执行认证的控制器方法中。

LoginSuccess

LoginSuccess方法有两种变体——一种有密码,一种没有密码。当这个信息被输入账户收购功能,如果密码可用,我们建议使用该方法为帐户收购算法提供其他数据。

          
LoginSuccess API定义
1
公共void loginsuccess(字符串用户名);
2
public void LoginSuccess(string userName, string password); / /密码

参数

  • 用户名:用户的用户名成功登录
  • 密码:用户的密码成功登录;看密码散列章节以了解密码使用的更多细节。

LoginFailed

LoginFailed有4种变体,都需要用户名。有些具有可选的password或userValid参数,分别表示登录失败的密码和传递的用户名是否有效。所有这些信息都被输入账户收购功能,所以我们建议使用最有信息的方法,如果可用的话。

          
LoginFailed API定义
1
public void LoginFailed(string userName);
2
public void LoginFailed(string userName, string password);
3.
public void LoginFailed(string userName, bool userValid);
4
public 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;
7
8
公共LoginController (ILoginHooks loginHooks)
9
10
_loginhooks = loginhooks;
11
12
13
public IActionResult Default(LoginModel模型)
14
15
var validUser = model。用户名= =“用户名”;
16
var validPassword = model。密码= =“密码”;
17
if(有效用户&& validpassword)
18
19
_loginHooks.LoginSuccess(模型。用户名、model.Password);
20.
21
其他的
22
23
_loginhooks.loginfailed(model.Username,Model.Password,Validuser);
24
25
还好();
26
27