首页 > 如何利用azMan (Authorization Manager) 实现 role-based的安全验证机制

如何利用azMan (Authorization Manager) 实现 role-based的安全验证机制

在WCF中如何配置基于asp.net role的授权机制,看了些时日,总算有点眉目了 。

以下是一个典型的通过自定义的role-based (principalPermissionMode=UseAspNetRoles)来进行授权的WCF  service config file.

ContractedBlock.gifExpandedBlockStart.gifCode

xml version="1.0" encoding="utf-8" ?>

<configuration>

    
<system.serviceModel>



        
<behaviors>

            
<serviceBehaviors>

                
<behavior name='ServiceBehavior'>

                    
<serviceAuthorization  principalPermissionMode='UseAspNetRoles' roleProviderName='AuthorizationStoreRoleProvider' />

                    <serviceMetadata httpGetEnabled ='true'/>

                
behavior>

            
serviceBehaviors>

            

        
behaviors>



        
<services>

            
<service name="Service.ResourceAccessServiceType"

                     behaviorConfiguration
='ServiceBehavior'>

                
<host>

                    
<baseAddresses>

                        
<add baseAddress='net.tcp://localhost:9000/Woodgrove'/>

                        
<add baseAddress='http://localhost:8000/Woodgrove'/>

                    
baseAddresses>

                
host>

                
<endpoint address="ResourceAccess"

                          binding
="netTcpBinding"

                          contract
="Service.IResourceAccessContract" />

                
<endpoint address="mex"

                          binding
="mexHttpBinding" 

                          contract
="IMetadataExchange" />

            
service>





        
services>



        

    
system.serviceModel>

    

    



    


    
<system.web>

        
<roleManager defaultProvider="AuthorizationStoreRoleProvider" 

                     enabled
="true"

                     cacheRolesInCookie
="true"

                     cookieName
=".ASPROLES"

                     cookieTimeout
="30"

                     cookiePath
="/"

                     cookieRequireSSL
="false"

                     cookieSlidingExpiration
="true"

                     cookieProtection
="All"  >

            
<providers>

                
<clear />

        
<add

           name
="AuthorizationStoreRoleProvider"

           type
="System.Web.Security.AuthorizationStoreRoleProvider"

           connectionStringName
="AuthorizationServices"

           applicationName
="RoleProvider" />

        

            
providers>

        
roleManager>

    
system.web>



    


    
<connectionStrings>

        
<add 

            name
="AuthorizationServices" 

connectionString
="msxml://D:documentationAuthorizationStore.xml" />

    
connectionStrings>

    

configuration>

 

而通过azMan生成的授权配置 xml文件(该文件路径:D:documentationAuthorizationStore.xml)如下

ContractedBlock.gifExpandedBlockStart.gifCode

xml version="1.0" encoding="utf-8"?>

<AzAdminManager MajorVersion="1" MinorVersion="0">

    
<AzApplication Guid="ce0032aa-9b1a-4243-b065-ee654d1ec90d" Name="RoleProvider" Description="" ApplicationVersion=""><AzOperation Guid="497d2e02-18d4-49d2-b8ef-88bc58828509" Name="SomeOperation" Description=""/><AzTask Guid="c1ca5e81-099b-4ba0-ab94-d3c9ed583b72" Name="Manager" Description="" BizRuleImportedPath="" RoleDefinition="True"/><AzTask Guid="a9dfdf2b-fe2a-4573-93e0-28a2e2afe234" Name="StaffMember" Description="" BizRuleImportedPath="" RoleDefinition="True"/><AzRole Guid="2381420b-45e9-4c27-9fd5-299e241aa4df" Name="Manager"><TaskLink>c1ca5e81-099b-4ba0-ab94-d3c9ed583b72TaskLink><Member>S-1-5-21-2146773085-903363285-719344707-661121Member>AzRole><AzRole Guid="36e60ed8-fc70-4b12-9353-95a96e13e431" Name="StaffMember"><TaskLink>a9dfdf2b-fe2a-4573-93e0-28a2e2afe234TaskLink><Member>S-1-1-0Member>AzRole>AzApplication>AzAdminManager>

 

那么,什么是azMan,如何配置?这里推荐一片极好的文章,讲解了如何利用azMan对于中间层的.net 应用程序实现role-based的身份安全验证机制。

链接地址如下:http://msdn.microsoft.com/zh-cn/magazine/cc300469(en-us).aspx

转载于:https://www.cnblogs.com/Winston/archive/2008/12/10/1352127.html

更多相关:

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 这是第三部分,完成效果如下 图1 建图和导航 三、使用RTAB-Map进行建图和导航 1. rtab...

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 由于之前的虚拟机性能限制,我在这个项目中使用了新的ubantu 16.04环境,虚拟机配置 内存 8GCPU...

  • [{name:1},{name:2}].forEach((v,i,ar) => {console.log(v,i,ar)});//基础遍历[{name:1},{name:2}].map((v) => v.name);//[1,2]返回对象数组中指定字段值的一位数组(不改变原始数组)[{name:1},{name:2},{name:3}...

  • 体验内容 使用gmapping方法利用turtlebot底盘移动信息和激光雷达数据进行建图。 1. 安装一些依赖包 sudo apt-get install ros-melodic-move-base* sudo apt-get install ros-melodic-map-server* sudo apt-get insta...

  • 前言 我们知道Java/Python这种语言能够很好得 支持反射。反射机制 就是一种用户输入的字符串到对应实现方法的映射,比如http接口中 用户传入了url,我们需要调用该url对应的方法/函数对象 从而做出对应的操作。 而C++ 并没有友好得支持这样的操作,而最近工作中需要通过C++实现http接口,这个过程想要代码实现得优雅...

  •   全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) 。GUID是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个...

  • GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生成的结果串会比较大。” 1. 一个GUID为一个128位的整数(16字节),在使用唯一标识符的情况...

  • js 与或运算符 || && 妙用,可用于精简代码,降低程序的可读性。 首先出个题: 如图:  假设对成长速度显示规定如下:  成长速度为5显示1个箭头;  成长速度为10显示2个箭头;  成长速度为12显示3个箭头;  成长速度为15显示4个箭头;  其他都显示都显示0各箭头。  用代码怎么实现?  差一点的if,else: ...

  • web.config 文件查找规则:       (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找。       (2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该结点名,则查找它的上级目录,直到网站的根目录。    ...