Enterprise Library Step By Step系列(六):安全应用程序块——进阶篇
Authentication是一个确认调用者身份的过程,使用时需要考虑以下方面:
(1)界定认证的使用边界(Boundary),尤其当应用系统跨越信任边界时,一个信任边界通常包括:Assemblies,Processes,Hosts
(2)确认调用者的身份(Caller),通常是用户名和密码。
关于认证在入门篇里面我们已经给出了示例代码。
二. 授权(Authorization):
Authorization的作用在于决定一个被认证的用户是否具有某种业务操作的权限,不适当的或弱授权可能导致信息泄露或篡改的风险。通过授权进行深度防范是安全应用的一个重要策略。
Authorization Provider有两种:
Authorization Manager
Authorization Rule(授权规则)
下面来详细看一下授权规则的要素:
I:Identities(身份)
R:Roles(角色)
Operators(关系操作符)
AND OR NOT AND ()
举个例子:R:Employee OR R:Manager OR I:Bob就是一条授权规则
授权规则编辑器界面如下:
认证的基本代码:











三. 角色(Roles):
在角色中,有两类基本的授权策略:
基于角色:Role Based
基于资源:Resource Based
关于角色授权在GotDotnet上有一个基于数据库的角色授权企业库插件,大家可以下载下来,安装在自己的机器上。通过配置后,会将授权规则保存在数据库中,同时我们可以自行开发一个界面让用户输入。
下载地址:
https://files.cnblogs.com/Terrylee/DBRulesAuthorizationProvider.zip
四. 个性化服务(Profiles):
Profiles是系统面向用户提供的灵活性的个体信息的容器,一个用户的Profile可以使以下一种或多种的集合:
(1) 简单的字符串或其他基础类型
(2) 一个序列化的实体
(3) 基础类型及序列化实体的Dictionary
保存个性化信息:

2

3

4

5

6

7

8

9

10

11

12

加载个性化信息:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

五. 严格的帐号管理策略:
在应用管理系统中,我们需要有一套严格的帐号管理策略,那么严格的帐号管理包括那些方面?
(1) 您的应用是否需要强密码;
(2) 您是否限制尝试登陆失败的次数;
(3) 是否对登陆失败的原因给与过多的提示;
(4) 是否强制推行密码的有效期限;
(5) 是否根据特殊事件对Account进行无效处理;
(6) 是否对Login进行日志处理;
六. The Security Cache:
在安全应用程序块中允许对Security相关的信息进行缓存,被缓存的喜讯你可以通过Token进行访问,通过缓存而不是每次都进行认证的方式提高系统的效率。
总结:在安全应用程序块中的内容比较多,不能每一个都给出示例,请大家见谅。建议初学的朋友认真看一下Enterprise Library Hands On Lab,做一些Demo多加以理解。会在以后的项目开发中把安全应用程序块运用的更好。
Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
https://worktile.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)