框架目前提供url訪問、選單和頁面元素的許可權控制和資料許可權,許可權基於角色來分配,1個使用者可以屬於多個角色,許可權項分模組、頁面、操作3級別,其中模組、頁面用於url和選單的控制,操作是對頁面元素的控制。
相關模組
業務層:srf.domainmodel.admin
如何使用
1、web.config相關的配置
<view codeconfigsections
>
<
section
name
="membershipprovider"
type
="srf.security.principal.membershipsection, srf.security"
requirepermission
="false"
allowdefinition
restartonexternalchanges
="true"
/>
<
section
name
="permissionprovider"
type
="srf.security.permission.permissionsection, srf.security"
requirepermission
="false"
allowdefinition
restartonexternalchanges
="true"
/>
<
section
name
="securityprovider"
type
="srf.security.securitysection, srf.security"
requirepermission
="false"
allowdefinition
restartonexternalchanges
="true"
/>
<
section
name
="dataruleprovider"
type
="srf.security.datarule.datarulesection,srf.security"
requirepermission
="false"
allowdefinition
restartonexternalchanges
="true"
/>
<
section
name
="unity"
type
="microsoft.practices.unity.configuration.unityconfigurationsection, microsoft.practices.unity.configuration"
/>
configsections
>
<
membershipprovider
defaultprovider
="mymembershipprovider"
>
<
providers
>
<
add
name
="mymembershipprovider"
type
="srf.components.security.mymembershipprovider, srf.components.security"
/>
providers
>
membershipprovider
>
<
permissionprovider
defaultprovider
="mypermissionprovider"
>
<
providers
>
<
add
name
="mypermissionprovider"
type
="srf.components.security.mypermissionprovider, srf.components.security"
/>
providers
>
permissionprovider
>
<
dataruleprovider
defaultprovider
="mydataruleprovider"
>
<
providers
>
<
add
name
="mydataruleprovider"
type
="srf.components.security.mydataruleprovider, srf.components.security"
/>
providers
>
dataruleprovider
>
<
>
<
add
key="encryptpassword"
value
="true"
/>
<
add
keyvalue
="~/mvc.sitemap"
/>
<
add
keyvalue
="true"
/>
<
add
keyvalue
="srf.ui.sitemapnodevisibilityprovider, srf.ui"
/>
>
2、呼叫
(1)配置
在後台配置功能和和資料許可權。
(2)在控制器類或控制器的函式上加[authorize],表示只有配置訪問給action時進行驗證,如
[authorize](3)html標籤許可權public
class
defaultcontroller : controller
{}
根據許可權配置控制html標籤的顯示/有效。
在頁面增加下邊的**:
@html.authorize((*這裡是通過js來實現html標籤的控制,不保證安全)new actionitem("
#add
", "
visible
", "
allowadd
") //
標籤selector,屬性(display、visible、enabled),操作編碼
)
(4)資料許可權
在後台配置資料規則和sql配置的變數相對應,如
資料規則配置的過濾條件為 」and [email protected] 」,sql語句:select*from om_order where 1=1
那麼使用者擁有該資料規則的許可權則用該過濾條件替換語句的相應的語句片段。
(5)安全相關的功能在srf.security.securitycontext,提供登陸、登出、當前使用者、檢測是否具有訪問許可權等函式
如何實現
1、模型
乙個使用者可以屬於多個角色,給角色分配許可權
2、url驗證
url訪問驗證有srf.security.authorize呼叫 securitycontext.hasurlgrant()進行驗證
3、html標籤的顯示/有效的控制
@html.authorize() 根據引數和許可權配置生成js指令碼,呼叫common.js的security.verify()。
///在web.config:///選單節點過濾器
/// public
class
return
visible;}}
<add
keyvalue
="srf.ui.sitemapnodevisibilityprovider, srf.ui"
/>
SRF之資料字典
框架提供資料字典的配置和顯示的功能 字典以編碼作為標識,用varchar 50 型別儲存字典的編碼。字典的用法 1 在 裡邊需要查詢字典資訊的 可用 components.datadictionary.datadictionaryhelper的函式 2 某個物件的屬性用資料字典表示的 在該屬性上新增...
HBase之許可權控制
hbase支援做許可權訪問控制,hbase的許可權訪問包括以下5種許可權,這裡的scope包含以下幾種,hbase的訪問控制相關命令主要包括grant revoke user permission,其中grant表示授權,revoke表示 許可權,user permission用於查詢許可權。hba...
zookeeper之許可權控制 ACL
1.許可權控制 zookeeper集群中,通常是由乙個統一的zookeeper集群來為若干個應用提供服務。而此時,各應用之間不存在資料的共享操作場景。因此為了避免zookeeper伺服器上的資料資源被其他程序意外操作修改,需要解決不同應用之間的許可權問題 即對zookeeper伺服器上的資料訪問進行...