系统 授权服务 配置

master
xiaochanghai 1 year ago
parent 28ca041205
commit 08b16880a5
  1. 30
      Tiobon.Core.Extensions/ServiceExtensions/AuthorizationSetup.cs

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

Loading…
Cancel
Save