SRF之許可權控制

2022-02-14 07:11:40 字數 4379 閱讀 4064

框架目前提供url訪問、選單和頁面元素的許可權控制和資料許可權,許可權基於角色來分配,1個使用者可以屬於多個角色,許可權項分模組、頁面、操作3級別,其中模組、頁面用於url和選單的控制,操作是對頁面元素的控制。

相關模組

業務層:srf.domainmodel.admin

如何使用

1、web.config相關的配置

<

configsections

>

<

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"

/>

>

view code

2、呼叫

(1)配置

在後台配置功能和和資料許可權。

(2)在控制器類或控制器的函式上加[authorize],表示只有配置訪問給action時進行驗證,如

[authorize]

public

class

defaultcontroller : controller

{}

(3)html標籤許可權

根據許可權配置控制html標籤的顯示/有效。

在頁面增加下邊的**:

@html.authorize(

new actionitem("

#add

", "

visible

", "

allowadd

") //

標籤selector,屬性(display、visible、enabled),操作編碼

)

(*這裡是通過js來實現html標籤的控制,不保證安全)

(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()。

///

///選單節點過濾器

/// public

class

return

visible;}}

在web.config:

<

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伺服器上的資料訪問進行...