|
|
|
@ -1,23 +1,20 @@ |
|
|
|
|
using Tiobon.Core.AuthHelper; |
|
|
|
|
using Tiobon.Core.Common; |
|
|
|
|
using Tiobon.Core.Common.AppConfig; |
|
|
|
|
using System.Security.Claims; |
|
|
|
|
using System.Text; |
|
|
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
|
|
using Microsoft.AspNetCore.Http; |
|
|
|
|
using Microsoft.Extensions.DependencyInjection; |
|
|
|
|
using Microsoft.IdentityModel.Tokens; |
|
|
|
|
using System; |
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
using System.Security.Claims; |
|
|
|
|
using System.Text; |
|
|
|
|
using System.Security; |
|
|
|
|
using Tiobon.Core.AuthHelper; |
|
|
|
|
using Tiobon.Core.Common; |
|
|
|
|
using Tiobon.Core.Common.AppConfig; |
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Extensions; |
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Extensions |
|
|
|
|
/// <summary> |
|
|
|
|
/// 系统 授权服务 配置 |
|
|
|
|
/// </summary> |
|
|
|
|
public static class AuthorizationSetup |
|
|
|
|
{ |
|
|
|
|
/// <summary> |
|
|
|
|
/// 系统 授权服务 配置 |
|
|
|
|
/// </summary> |
|
|
|
|
public static class AuthorizationSetup |
|
|
|
|
{ |
|
|
|
|
public static void AddAuthorizationSetup(this IServiceCollection services) |
|
|
|
|
{ |
|
|
|
|
if (services == null) throw new ArgumentNullException(nameof(services)); |
|
|
|
@ -49,7 +46,7 @@ namespace Tiobon.Core.Extensions |
|
|
|
|
var Issuer = AppSettings.app(new string[] { "Audience", "Issuer" }); |
|
|
|
|
var Audience = AppSettings.app(new string[] { "Audience", "Audience" }); |
|
|
|
|
var ExpirationHourString = AppSettings.app(new string[] { "Audience", "ExpirationHour" }); |
|
|
|
|
var ExpirationHour = string.IsNullOrWhiteSpace(ExpirationHourString) ? 4 : Convert.ToInt32(ExpirationHourString); |
|
|
|
|
var ExpirationHour = string.IsNullOrWhiteSpace(ExpirationHourString) ? 4 : Convert.ToInt32(ExpirationHourString) + 1; |
|
|
|
|
var signingCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256); |
|
|
|
|
|
|
|
|
|
// 如果要数据库动态绑定,这里先留个空,后边处理器里动态赋值 |
|
|
|
@ -63,7 +60,7 @@ namespace Tiobon.Core.Extensions |
|
|
|
|
Issuer,//发行人 |
|
|
|
|
Audience,//听众 |
|
|
|
|
signingCredentials,//签名凭据 |
|
|
|
|
expiration: TimeSpan.FromSeconds(240 * 60 * ExpirationHour)//接口的过期时间 |
|
|
|
|
expiration: TimeSpan.FromSeconds(60 * 60 * ExpirationHour)//接口的过期时间 |
|
|
|
|
); |
|
|
|
|
#endregion |
|
|
|
|
// 3、自定义复杂的策略授权 |
|
|
|
@ -95,5 +92,4 @@ namespace Tiobon.Core.Extensions |
|
|
|
|
services.AddScoped<IAuthorizationHandler, PermissionHandler>(); |
|
|
|
|
services.AddSingleton(permissionRequirement); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|