-
Notifications
You must be signed in to change notification settings - Fork 0
/
temp.cs
113 lines (112 loc) · 5.94 KB
/
temp.cs
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// startup.cs 驗證寫法
// services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
// .AddJwtBearer(options =>
// {
// options.TokenValidationParameters = new TokenValidationParameters
// {
// ValidateAudience = false,
// ValidateIssuer = false,
// ClockSkew = TimeSpan.Zero,
// IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(Configuration["JwtSetting:Key"]))
// };
// options.Events = new JwtBearerEvents
// {
// OnChallenge = context =>
// {
// try
// {
// context.HandleResponse();
// Response<string> result = new Response<string>();
// result.StatusCode = Status.Unauthorized;
// result.Message = nameof(Status.Unauthorized);
// result.Data = null;
// context.Response.StatusCode = 200;
// context.Response.ContentType = "application/json";
// context.Response.WriteAsync(JsonConvert.SerializeObject(result));
// return Task.CompletedTask;
// }
// catch (Exception e)
// {
// Console.WriteLine($"ERROR: {e.Message}");
// Response<string> result = new Response<string>();
// result.StatusCode = Status.SystemError;
// result.Message = nameof(Status.SystemError);
// result.Data = null;
// context.Response.StatusCode = 200;
// context.Response.ContentType = "application/json";
// context.Response.WriteAsync(JsonConvert.SerializeObject(result));
// return Task.CompletedTask;
// }
// },
// OnTokenValidated = context =>
// {
// try
// {
// string authorization = context.Request.Headers["Authorization"];
// authorization = authorization.Replace("Bearer ", "");
// JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();
// JwtSecurityToken token = handler.ReadJwtToken(authorization);
// UserDetail decode = new UserDetail
// {
// Id = Convert.ToInt32(token.Payload["Id"]),
// Name = token.Payload["Name"].ToString(),
// Status = Convert.ToInt32(token.Payload["Status"])
// };
// using (SqlConnection connection = new SqlConnection(Configuration["ConnectionStrings:DevConnection"]))
// {
// string queryString = "select [Token] from [ArticleDB].[dbo].[Token] where [User_Id]=@User_Id";
// SqlCommand command = new SqlCommand(queryString, connection);
// command.Parameters.AddRange(new SqlParameter[]
// {
// new SqlParameter("@User_Id", SqlDbType.Int) { Value = decode.Id }
// });
// connection.Open();
// using (SqlDataReader reader = command.ExecuteReader())
// {
// if (!reader.HasRows)
// {
// Response<string> result = new Response<string>();
// result.StatusCode = Status.Forbidden;
// result.Message = nameof(Status.Forbidden);
// result.Data = null;
// context.Response.StatusCode = 200;
// context.Response.ContentType = "application/json";
// context.Response.WriteAsync(JsonConvert.SerializeObject(result));
// return Task.CompletedTask;
// }
// if (reader.Read())
// {
// if (reader.GetString("Token") != authorization)
// {
// Response<string> result = new Response<string>();
// result.StatusCode = Status.Forbidden;
// result.Message = nameof(Status.Forbidden);
// result.Data = null;
// context.Response.StatusCode = 200;
// context.Response.ContentType = "application/json";
// context.Response.WriteAsync(JsonConvert.SerializeObject(result));
// return Task.CompletedTask;
// }
// }
// reader.Close();
// }
// connection.Close();
// }
// context.HttpContext.Items.Add("Token", decode);
// return Task.CompletedTask;
// }
// catch (Exception e)
// {
// Console.WriteLine($"ERROR: {e.Message}");
// Response<string> result = new Response<string>();
// result.StatusCode = Status.SystemError;
// result.Message = nameof(Status.SystemError);
// result.Data = null;
// context.Response.StatusCode = 200;
// context.Response.ContentType = "application/json";
// context.Response.WriteAsync(JsonConvert.SerializeObject(result));
// return Task.CompletedTask;
// }
// }
// };
// });