Skip to content

Commit db04066

Browse files
committed
feat: 新增 授权抽象类库
1 parent 9cba9ff commit db04066

File tree

6 files changed

+168
-0
lines changed

6 files changed

+168
-0
lines changed

Bing.All.sln

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bing.Uow", "framework\src\B
264264
EndProject
265265
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bing.AspNetCore.Serilog", "framework\src\Bing.AspNetCore.Serilog\Bing.AspNetCore.Serilog.csproj", "{46718841-DF9E-41A4-AF87-C8E81AAE6F55}"
266266
EndProject
267+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bing.Authorization.Abstractions", "framework\src\Bing.Authorization.Abstractions\Bing.Authorization.Abstractions.csproj", "{4B50588D-013B-462C-AA1E-169BEDBA206E}"
268+
EndProject
267269
Global
268270
GlobalSection(SolutionConfigurationPlatforms) = preSolution
269271
Debug|Any CPU = Debug|Any CPU
@@ -586,6 +588,10 @@ Global
586588
{46718841-DF9E-41A4-AF87-C8E81AAE6F55}.Debug|Any CPU.Build.0 = Debug|Any CPU
587589
{46718841-DF9E-41A4-AF87-C8E81AAE6F55}.Release|Any CPU.ActiveCfg = Release|Any CPU
588590
{46718841-DF9E-41A4-AF87-C8E81AAE6F55}.Release|Any CPU.Build.0 = Release|Any CPU
591+
{4B50588D-013B-462C-AA1E-169BEDBA206E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
592+
{4B50588D-013B-462C-AA1E-169BEDBA206E}.Debug|Any CPU.Build.0 = Debug|Any CPU
593+
{4B50588D-013B-462C-AA1E-169BEDBA206E}.Release|Any CPU.ActiveCfg = Release|Any CPU
594+
{4B50588D-013B-462C-AA1E-169BEDBA206E}.Release|Any CPU.Build.0 = Release|Any CPU
589595
EndGlobalSection
590596
GlobalSection(SolutionProperties) = preSolution
591597
HideSolutionNode = FALSE
@@ -700,6 +706,7 @@ Global
700706
{B6E2B626-F561-4B47-8CFE-E8A305696522} = {2BA5C677-C0B9-458B-8A6D-D3E74B6F60EA}
701707
{659C6450-6A39-44A3-A1A5-449ECAA1AFBE} = {AED4D92B-5196-47E9-BD2C-84D4077F5A70}
702708
{46718841-DF9E-41A4-AF87-C8E81AAE6F55} = {052D4342-8B65-4836-A9B6-681A7812760E}
709+
{4B50588D-013B-462C-AA1E-169BEDBA206E} = {472FFE79-B8B1-41A1-91F2-CFA0F8406BC9}
703710
EndGlobalSection
704711
GlobalSection(ExtensibilityGlobals) = postSolution
705712
SolutionGuid = {C1202A0F-83CC-4602-BCE5-20CB640BCAD4}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<AssemblyName>Bing.Authorization.Abstractions</AssemblyName>
4+
<PackageId>Bing.Authorization.Abstractions</PackageId>
5+
<Description>Bing.Authorization.Abstractions是Bing应用框架的API功能授权的抽象类库。</Description>
6+
</PropertyGroup>
7+
<ItemGroup>
8+
<Folder Include="Bing\Authorization\Functions\" />
9+
</ItemGroup>
10+
11+
<Import Project="..\..\..\framework.props" />
12+
13+
<Import Project="dependency.props" />
14+
15+
</Project>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using System.ComponentModel;
2+
3+
namespace Bing.Authorization.Functions;
4+
5+
/// <summary>
6+
/// 功能访问类型
7+
/// </summary>
8+
public enum FunctionAccessType
9+
{
10+
/// <summary>
11+
/// 匿名用户可访问
12+
/// </summary>
13+
[Description("匿名访问")]
14+
Anonymous = 0,
15+
16+
/// <summary>
17+
/// 登录用户可访问
18+
/// </summary>
19+
[Description("登录访问")]
20+
LoggedIn = 1,
21+
22+
/// <summary>
23+
/// 指定角色可访问
24+
/// </summary>
25+
[Description("角色访问")]
26+
RoleLimit = 2
27+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
namespace Bing.Authorization.Functions;
2+
3+
/// <summary>
4+
/// 定义功能信息
5+
/// </summary>
6+
public interface IFunction
7+
{
8+
/// <summary>
9+
/// 功能名称
10+
/// </summary>
11+
string Name { get; set; }
12+
13+
/// <summary>
14+
/// 区域名称
15+
/// </summary>
16+
string AreaName { get; set; }
17+
18+
/// <summary>
19+
/// 控制器名称
20+
/// </summary>
21+
string ControllerName { get; set; }
22+
23+
/// <summary>
24+
/// 控制器的功能名称
25+
/// </summary>
26+
string ActionName { get; set; }
27+
28+
/// <summary>
29+
/// 是否控制器
30+
/// </summary>
31+
bool IsController { get; set; }
32+
33+
/// <summary>
34+
/// 是否Ajax功能
35+
/// </summary>
36+
bool IsAjax { get; set; }
37+
38+
/// <summary>
39+
/// 访问类型
40+
/// </summary>
41+
FunctionAccessType AccessType { get; set; }
42+
43+
/// <summary>
44+
/// 访问类型是否可更改,如为true,刷新功能时将忽略功能类型
45+
/// </summary>
46+
bool IsAccessTypeChanged { get; set; }
47+
48+
/// <summary>
49+
/// 是否启用操作审计
50+
/// </summary>
51+
bool AuditOperationEnabled { get; set; }
52+
53+
/// <summary>
54+
/// 是否启用数据审计
55+
/// </summary>
56+
bool AuditEntityEnabled { get; set; }
57+
58+
/// <summary>
59+
/// 数据缓存时间。单位:秒
60+
/// </summary>
61+
int CacheExpirationSeconds { get; set; }
62+
63+
/// <summary>
64+
/// 是否相对过期时间,否则为绝对过期时间
65+
/// </summary>
66+
bool IsCacheSliding { get; set; }
67+
68+
/// <summary>
69+
/// 是否从库读取数据
70+
/// </summary>
71+
bool IsSlaveDatabase { get; set; }
72+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using System.Reflection;
2+
3+
namespace Bing.Authorization.Functions;
4+
5+
/// <summary>
6+
/// 功能信息处理器
7+
/// </summary>
8+
public interface IFunctionHandler
9+
{
10+
/// <summary>
11+
/// 初始化。从程序集中获取功能信息(如MVC的Controller-Action)
12+
/// </summary>
13+
void Initialize();
14+
15+
/// <summary>
16+
/// 获取所有功能类型
17+
/// </summary>
18+
Type[] GetAllFunctionTypes();
19+
20+
/// <summary>
21+
/// 查找指定功能的所有功能点方法
22+
/// </summary>
23+
/// <param name="functionType">功能类型</param>
24+
MethodInfo[] GetMethodInfos(Type functionType);
25+
26+
/// <summary>
27+
/// 查找指定条件的功能信息
28+
/// </summary>
29+
/// <param name="area">区域</param>
30+
/// <param name="controller">控制器</param>
31+
/// <param name="action">功能方法</param>
32+
/// <returns>功能信息</returns>
33+
IFunction GetFunction(string area, string controller, string action);
34+
35+
/// <summary>
36+
/// 刷新功能信息缓存
37+
/// </summary>
38+
void RefreshCache();
39+
40+
/// <summary>
41+
/// 清空功能信息缓存
42+
/// </summary>
43+
void ClearCache();
44+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<Project>
2+
3+
</Project>

0 commit comments

Comments
 (0)