關于ADO.NET權限集拓展
我們之前介紹了關于ADO.NET程序集,這里我們來看看ADO.NET權限集是怎么回事,本文先初步的讓大家了解一些關于權限集的基本用法。希望大家在以后的工作中能積累這方面的知識。.NET Framework 提供基于角色的安全性和代碼訪問安全性 (CAS),這兩種安全性都可以通過公共語言運行庫 (CLR) 提供的公共基礎結構實現。 對于非托管代碼,大多數應用程序都可以使用用戶或主體權限執行。因此,當擁有提升權限的用戶運行惡意軟件或包含錯誤的軟件時,計算機系統可能會受到損壞并危及私有數據。
#T#啟用具有自定義權限集的部分信任
要對特定區域啟用System.Data.SqlClient權限,系統管理員必須創建自定義的權限集,并將其設置為特定區域的權限集。不能修改默認權限集(如LocalIntranet)。例如,要對Zone為LocalIntranet的代碼加入System.Data.SqlClient權限,系統管理員可以復制LocalIntranet的權限集,將其重命名為“CustomLocalIntranet”,添加System.Data.SqlClient權限,再使用代碼訪問安全策略工具(Caspol.exe)導入CustomLocalIntranet權限集,然后將LocalIntranet_Zone權限集設置為CustomLocalIntranet。
示例ADO.NET權限集
下面是在部分受信任方案中,SQLServer.NETFramework數據提供程序的示例權限集。有關創建自定義權限集的信息,請參見使用Caspol.exe配置權限集。
- <PermissionSetclassPermissionSetclass="System.Security.NamedPermissionSet"
- version="1"
- Name="CustomLocalIntranet"
- Description="Custompermissionsetgiventoapplicationson
- thelocalintranet">
- <IPermissionclassIPermissionclass="System.Data.SqlClient.SqlClientPermission,System.Data,Version=2.0.0000.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"
- version="1"
- AllowBlankPassword="False">
- <addConnectionStringaddConnectionString="DataSource=(local);IntegratedSecurity=true;"
- KeyRestrictions="InitialCatalog=;ConnectionTimeout=;
- Encrypt=;PacketSize=;"
- KeyRestrictionBehavior="AllowOnly"/>
- </IPermission>
- </PermissionSet>