Blame view

泰额版/Food Labeling Management Code/Yi.Doc.Md/02.框架功能模块教程/05.当前用户.md 1.22 KB
59e51671   “wangming”   1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
  ## 简介
  如何获取当前请求用户信息?这个问题有很多个答案
  
  常规是通过HttpContext对象进行获取,它通常是在ControllerBase中,控制器中内置了HttpContext对象
  也可以通过依赖注入HttpContext访问器中获取
  
  > 但是,他们都不够优雅,原因:与HttpContext具备了强耦合,如果对于没有HttpContext,将会非常的难维护,例如:单元测速
  
  你可以依赖注入使用:`ICurrentUser`
  它是瞬态注入,但是它能够获取当前作用域的用户信息
  ## 如何使用
  任何地方,依赖注入:`ICurrentUser`
  它包含属性:
  ``` cs
   public interface ICurrentUser
      {
  //是否授权
          public bool IsAuthenticated { get; }
  //id
          public Guid Id { get; }
  //用户名
          public string UserName { get; }
  //租户id
          public Guid TenantId { get; }
  //邮件
          public string Email { get; }
  
          public bool EmailVerified { get; }
  //电话
          public string PhoneNumber { get;  }
  
          public bool PhoneNumberVerified { get; }
  //角色codes
          public string[]? Roles { get; }
  
  
      }
  ```
  直接使用即可
  
  > 注意,当前用户功能默认是继承到Core模块,所以你无需进行任何引用,直接使用即可