feat: 优化

main
bicijinlian 2 years ago
parent 7157b41000
commit 5d7c56c1a8

3
.gitignore vendored

@ -438,3 +438,6 @@ FodyWeavers.xsd
# Built Visual Studio Code Extensions # Built Visual Studio Code Extensions
*.vsix *.vsix
#Rider
.idea
/.idea

@ -92,7 +92,7 @@ namespace AuthStudy.Authentication.Browser
var device = new Claim("Device", clientInfo.Device.ToString()); //设备 //设备 var device = new Claim("Device", clientInfo.Device.ToString()); //设备 //设备
//声明集合 //声明集合
var Claims = new List<Claim> var claims = new List<Claim>
{ {
browser, browser,
os, os,
@ -100,7 +100,7 @@ namespace AuthStudy.Authentication.Browser
}; };
//身份:包含声明集合,是声明集合的包装类,一个身份对应多个声明 //身份:包含声明集合,是声明集合的包装类,一个身份对应多个声明
var claimsIdentity = new ClaimsIdentity(Claims, DefaultSchemeName); var claimsIdentity = new ClaimsIdentity(claims, DefaultSchemeName);
//当事人/主角是身份Identity的包装对应多个身份 //当事人/主角是身份Identity的包装对应多个身份
var claimsPrincipal = new ClaimsPrincipal(claimsIdentity); var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);
@ -118,16 +118,16 @@ namespace AuthStudy.Authentication.Browser
} }
/// <summary> /// <summary>
/// 无认证:服务端向客户端(浏览器)发质询(要求提供一个新票据),质询体现为 htpp请求的响应。 /// 无认证:服务端向客户端(浏览器)发质询(要求提供一个新票据),质询体现为 http请求的响应。
/// </summary> /// </summary>
public async Task ChallengeAsync(AuthenticationProperties? properties) public async Task ChallengeAsync(AuthenticationProperties? properties)
{ {
properties?.Parameters.Add("x-itme", "无效的认证"); properties?.Parameters.Add("x-item", "无效的认证");
CurrentHttpContext!.Response.StatusCode = 401; CurrentHttpContext!.Response.StatusCode = 401;
if (CurrentHttpContext?.Response.Body.CanWrite ?? false) if (CurrentHttpContext?.Response.Body.CanWrite ?? false)
{ {
var msg = UTF8Encoding.UTF8.GetBytes("认证无效"); var msg = Encoding.UTF8.GetBytes("认证无效");
await CurrentHttpContext!.Response.Body.WriteAsync(msg); await CurrentHttpContext!.Response.Body.WriteAsync(msg);
} }
CurrentHttpContext?.Items.Add("认证结束时间", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); CurrentHttpContext?.Items.Add("认证结束时间", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
@ -135,14 +135,14 @@ namespace AuthStudy.Authentication.Browser
} }
/// <summary> /// <summary>
/// 无权限:服务端向客户端(浏览器)发质询(要求提供一个新票据),质询体现为 htpp请求的响应。 /// 无权限:服务端向客户端(浏览器)发质询(要求提供一个新票据),质询体现为 http请求的响应。
/// </summary> /// </summary>
public async Task ForbidAsync(AuthenticationProperties? properties) public async Task ForbidAsync(AuthenticationProperties? properties)
{ {
CurrentHttpContext!.Response.StatusCode = 403; CurrentHttpContext!.Response.StatusCode = 403;
if (CurrentHttpContext?.Response.Body.CanWrite ?? false) if (CurrentHttpContext?.Response.Body.CanWrite ?? false)
{ {
var msg = UTF8Encoding.UTF8.GetBytes("无权访问"); var msg = Encoding.UTF8.GetBytes("无权访问");
await CurrentHttpContext!.Response.Body.WriteAsync(msg); await CurrentHttpContext!.Response.Body.WriteAsync(msg);
} }
//return Task.CompletedTask; //return Task.CompletedTask;
@ -160,7 +160,7 @@ namespace AuthStudy.Authentication.Browser
/// <summary> /// <summary>
/// 初始化 /// 初始化
/// </summary> /// </summary>
public async Task InitializeAsync(AuthenticationScheme scheme, Microsoft.AspNetCore.Http.HttpContext context) public async Task InitializeAsync(AuthenticationScheme scheme, HttpContext context)
{ {
//初始化工作,传递给认证方法和授权中间件 //初始化工作,传递给认证方法和授权中间件
CurrentHttpContext = context; CurrentHttpContext = context;

@ -7,7 +7,7 @@ namespace AuthStudy.WebApp
{ {
public static void Main(string[] args) public static void Main(string[] args)
{ {
WebApplicationBuilder? builder = WebApplication.CreateBuilder(args); WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
// Add services to the container. // Add services to the container.
@ -17,10 +17,6 @@ namespace AuthStudy.WebApp
builder.Services.AddSwaggerGen(); builder.Services.AddSwaggerGen();
#region 认证注册 #region 认证注册
//builder.Services.AddAuthentication(configOption =>
//{
// configOption.AddScheme<BrowserAuthenticationHandler2<BrowserAuthenticationOptions>>(BrowserAuthenticationDefault.SchemeName, BrowserAuthenticationDefault.DispayName);
//});
builder.Services.AddBrowserAuthentication builder.Services.AddBrowserAuthentication
( (
BrowserAuthenticationDefault.SchemeName, BrowserAuthenticationDefault.SchemeName,
@ -32,7 +28,7 @@ namespace AuthStudy.WebApp
); );
#endregion #endregion
WebApplication? app = builder.Build(); WebApplication app = builder.Build();
// Configure the HTTP request pipeline. // Configure the HTTP request pipeline.
app.UseSwagger(); app.UseSwagger();

Loading…
Cancel
Save