Enterprise Library Step By Step系列(五):安全应用程序块——入门篇

本文介绍了安全应用程序块的基本概念和使用步骤,包括配置文件的设置、SecurityProvider实例的创建及执行命令,旨在帮助初学者理解如何在应用程序中实现认证、授权等功能。
 写在前面:按照本系列随笔的风格,还是立足于初学者,所以在入门篇里面介绍的比较简单,在进阶篇里面多介绍一些进一步的探索内容。避免给初学者一种觉得安全应用程序块很复杂的感觉。

一.     安全应用程序块概述:

安全应用程序块通过一个或多个安全机制,帮助开发人员在应用程序中实现通用的安全相关任务。

需要提高扩展性,以便在不改变应用程序代码的情况下更改认证或授权方式。

提供了以下几个方面的功能:

1.认证

2.授权

3.角色管理

4Profile管理

二.     几个重要的概念:

1.          Credential(令牌)

2.          Identity(身份)

3.          Principal(主体特征)

三.     使用三部曲:

在进行使用前请确保项目中有App.configWeb.config文件,并且需要数据库中有相关的表和存储过程,具体可参见数据库EntLibQuickStartsEnterprise Library的示例库)。

1.定义配置文件:

1)运行Enterprise Library Configuration 配置工具,打开项目中的配置文件;

2)右击Application,选择New | Security Application Block,创建一个安全应用程序块;

3)在Security Application Block | Authentication 节点上右击,选择 New | Database Authentication Provider,创建一个数据库认证Provider

4)根据在数据访问应用程序块中所讲的,设置数据库的连接字符串;

5)右击Cryptography Application Block | Hash Providers,选择New | Hash Algorithm Provider,创建一个加密Provider,并设置SaltEnabledTrue

6)选择Security Application Block | Authentication | Database Provider设置 Database 属性为 Database Instance, 并且设置 HashProvider 属性为SHA1Managed

7)选择Security Application Block,设置它的DefaultAuthenticationInstanceDatabase Provider



8)选择File | Save All保存全部。

至此,关于认证部分的配置已经做完。仅仅有这些还不够,我们还要进行设置角色。

9)选择Security Application Block,右击Roles,选择New | Role Database Provider创建一个角色的数据库Provider

10)设置Database属性为Database Instance

11)选择Security Application Block节点,设置DefaultRolesInstance,为RolesDatabase Provider


12)保存全部File | Save All

至此,所有的配置文件的工作已经做完。最后别忘了,做拷贝目录

1copy "$(ProjectDir)/*.config" "$(TargetDir)"

 

2.创建Security Provider实例:

1IAuthenticationProvider authprovider;
2            authprovider = AuthenticationFactory.GetAuthenticationProvider();

 

3.执行Security Provider命令:

 1 public static bool Authenticate(string username, string password)
 2        {
 3            bool authenticated = false;
 4
 5            
 6            NamePasswordCredential credentials;
 7            credentials = new NamePasswordCredential(username, password);
 8 
 9            IAuthenticationProvider authprovider;
10            authprovider = AuthenticationFactory.GetAuthenticationProvider();
11 
12            IIdentity identity;
13            authenticated = authprovider.Authenticate(credentials, out identity);
14 
15            if (!authenticated)
16            {
17                throw new SecurityException("Invalid username or password.");
18            }

19            
20          
21            
22            IRolesProvider rolesprovider;
23            rolesprovider = RolesFactory.GetRolesProvider();
24 
25            IPrincipal principal;
26            principal = rolesprovider.GetRoles(identity);
27 
28            // Place user's principal on the thread
29            Thread.CurrentPrincipal = principal;
30            
31            return authenticated;
32        }

 

入门篇就到这里了,安全应用程序块内容比较多,所以有些步骤里面我没有截图,请大家谅解。在进阶篇里面,我会分别介绍认证,授权(包括授权规则),角色,个性化服务,以及严格的帐号管理策略,Security Cache,包括第三方的基于数据库角色授权的插件等。

 
成都市作为中国西部地区具有战略地位的核心都市,其人口的空间分布状况对于城市规划、社会经济发展及公共资源配置等研究具有基础性数据价值。本文聚焦于2019年度成都市人口分布的空间数据集,该数据以矢量格式存储,属于地理信息系统中常用的数据交换形式。以下将对数据集内容及其相关技术要点进行系统阐述。 Shapefile 是一种由 Esri 公司提出的开放型地理空间数据格式,用于记录点、线、面等几何要素。该格式通常由一组相互关联的文件构成,主要包括存储几何信息的 SHP 文件、记录属性信息的 DBF 文件、定义坐标系统的 PRJ 文件以及提供快速检索功能的 SHX 文件。 1. **DBF 文件**:该文件以 dBase 表格形式保存与各地理要素相关联的属性信息,例如各区域的人口统计数值、行政区划名称及编码等。这类表格结构便于在各类 GIS 平台中进行查询与编辑。 2. **PRJ 文件**:此文件明确了数据所采用的空间参考系统。本数据集基于 WGS84 地理坐标系,该坐标系在全球范围内广泛应用于定位与空间分析,有助于实现跨区域数据的准确整合。 3. **SHP 文件**:该文件存储成都市各区(县)的几何边界,以多边形要素表示。每个多边形均配有唯一标识符,可与属性表中的相应记录关联,实现空间数据与统计数据的联结。 4. **SHX 文件**:作为形状索引文件,它提升了在大型数据集中定位特定几何对象的效率,支持快速读取与显示。 基于上述数据,可开展以下几类空间分析: - **人口密度评估**:结合各区域面积与对应人口数,计算并比较人口密度,识别高密度与低密度区域。 - **空间集聚识别**:运用热点分析(如 Getis-Ord Gi* 统计)或聚类算法(如 DBSCAN),探测人口在空间上的聚集特征。 - **空间相关性检验**:通过莫兰指数等空间自相关方法,分析人口分布是否呈现显著的空间关联模式。 - **多要素叠加分析**:将人口分布数据与地形、交通网络、环境指标等其他地理图层进行叠加,探究自然与人文因素对人口布局的影响机制。 2019 年成都市人口空间数据集为深入解析城市人口格局、优化国土空间规划及完善公共服务体系提供了重要的数据基础。借助地理信息系统工具,可开展多尺度、多维度的定量分析,从而为城市管理与学术研究提供科学依据。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值