· 7 years ago · Oct 18, 2018, 07:38 AM
1public class RolesFilterAttribute : TypeFilterAttribute
2{
3 public RolesFilterAttribute() : base(typeof(RolesFilterAttributeImpl))
4 {
5
6 }
7
8 private class RolesFilterAttributeImpl : IActionFilter
9 {
10 private readonly ValidateRoleClient validateRoleClient;
11 private string Role;
12 private string SecretKey;
13 public RolesFilterAttributeImpl(string Role, string SecretKey, ValidateRoleClient validateRoleClient)
14 {
15 this.validateRoleClient = validateRoleClient;
16 this.Role = Role;
17 this.SecretKey = SecretKey;
18 }
19
20 public void OnActionExecuted(ActionExecutedContext context)
21 {
22 if (context.HttpContext.Request.Cookies["Token"] != null || context.HttpContext.Request.Cookies["RefreshToken"] != null)
23 {
24 TokenViewModel tvm = new TokenViewModel
25 {
26 Token = context.HttpContext.Request.Cookies["Token"],
27 RefreshToken = context.HttpContext.Request.Cookies["RefreshToken"]
28 };
29 ValidateRoleViewModel vrvm = new ValidateRoleViewModel
30 {
31 Role = Role,
32 SecretKey = SecretKey,
33 Token = tvm
34 };
35 validateRoleClient.ValidateRole(vrvm);
36 }
37 }
38
39 public void OnActionExecuting(ActionExecutingContext context)
40 {
41 throw new NotImplementedException();
42 }
43 }
44}
45
46[TypeFilter(typeof(RolesFilterAttribute))]
47public IActionResult About()
48{
49 return View();
50}