1.XML文件配置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="securityConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Security.Configuration.SecuritySettings, Microsoft.Practices.EnterpriseLibrary.Security, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
<section name="cachingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<securityConfiguration defaultAuthorizationInstance="Authorization Rule Provider"
defaultSecurityCacheInstance="Security Cache">
<authorizationProviders>
<add type="Microsoft.Practices.EnterpriseLibrary.Security.AuthorizationRuleProvider, Microsoft.Practices.EnterpriseLibrary.Security, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="Authorization Rule Provider">
<rules>
<add expression="I:yoyo AND R:xixi" name="GetYOYO" />
<add expression="(I:zhu AND R: XIXI ) OR (I:zhu AND R:haha) "
name="XIXIhaha" />
</rules>
</add>
</authorizationProviders>
<securityCacheProviders>
<add type="Microsoft.Practices.EnterpriseLibrary.Security.Cache.CachingStore.CachingStoreProvider, Microsoft.Practices.EnterpriseLibrary.Security.Cache.CachingStore, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
cacheManagerInstanceName="Cache Manager" defaultSlidingSessionExpirationInMinutes="10"
defaultAbsoluteSessionExpirationInMinutes="60" name="Security Cache" />
</securityCacheProviders>
</securityConfiguration>
<cachingConfiguration defaultCacheManager="Cache Manager">
<cacheManagers>
<add name="Cache Manager" type="Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
expirationPollFrequencyInSeconds="60" maximumElementsInCacheBeforeScavenging="1000"
numberToRemoveWhenScavenging="10" backingStoreName="NullBackingStore" />
</cacheManagers>
<backingStores>
<add type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.NullBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="NullBackingStore" />
</backingStores>
</cachingConfiguration>
</configuration>
2.编程
static void Main(string[] args)
{
//通用标识,创建一个要验证的用户 zhu与XML中验证规则有对应
GenericIdentity g = new GenericIdentity("zhu");
//defaultAuthorizationInstance="Authorization Rule Provider",调用验证组件
IAuthorizationProvider i = AuthorizationFactory.GetAuthorizationProvider("Authorization Rule Provider");
//将要验证的用户和角色数组进行关联
IPrincipal p = new GenericPrincipal(g, new string[] { "xixi", "haha" });
//进行验证
bool result = i.Authorize(p, "XIXIhaha");
if (result)
Console.WriteLine("验证成功!");
else
Console.WriteLine("验证失败!");
Console.ReadKey();
}