国产91在线无码_少妇人妻无码高清_91人妻中文字幕无码专区在线_国产福利在线播放_免费 无码 国产成年视频网站

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

創(chuàng)建應(yīng)用模塊HelloMode

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

編寫應(yīng)用模塊一般應(yīng)用模塊的工程目錄結(jié)構(gòu)如下圖

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

View為頁面視目錄,該目錄結(jié)構(gòu)

UI庫名語言頁面文件

deviceUI庫名語言頁面文件,其中device表示手機(jī)頁面存儲地址

如上圖的 amazeuizh-CN表示存儲中文頁面,amazeuien-us表示存儲英文頁面

對于頁面視文件.aspx選中然后在屬性里“復(fù)制到輸出目錄”選擇“始終復(fù)制”,以便在編譯完成后自動復(fù)制到輸出目錄

將編譯的模塊設(shè)置輸出到主程序XNCrmManager的目錄以便調(diào)試

如上面HelloMode,點(diǎn)工程屬性,然后選擇生成

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

對于Release生成到主程序XNCrmManager的JsonMode下的模塊名目錄下

對于Debug生成到主程序XNCrmManager的JsonModeDebug下的模塊名目錄下

在web.config配置

Debug版本的配置如下(紅色部分)

<probing privatePath="JsonModeDebug/前沿模塊;JsonModeDebug/ShareDll;JsonModeDebug/動態(tài)表模塊;…;JsonModeDebug/HelloMode;"

Release版本的配置如下(紅色部分)

<probing privatePath="JsonMode/前沿模塊;JsonMode/ShareDll;JsonMode/動態(tài)表模塊;…;JsonMode/HelloMode;"

然后在系統(tǒng)里添加應(yīng)用模塊

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

然后將行業(yè)應(yīng)用綁定到需要的數(shù)據(jù)庫節(jié)點(diǎn)上

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

然后添加應(yīng)用模塊用到的數(shù)據(jù)庫表

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

輸入表名,初始化表的生成語句

是否全局表,也就是是否每個節(jié)點(diǎn)的數(shù)據(jù)都一樣,一般情況數(shù)據(jù)都不一致未非全局表

至此應(yīng)用模塊的基本初始化工作基本配置完成

新建的應(yīng)用模塊工程需要引用必要框架庫如下

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

IJsonModeEngine IXNDBEngine JsonMode MicroJson XNCache XNDBEngine XNCoreNodeDBEngine

引入庫位于lib下的$(Configuration)目錄下

實際工程會根據(jù)編譯的Release還是Debug版本去使用lib的Release或Debug下相應(yīng)文件

記得將所有引用的框架dll文件屬性下的復(fù)制到本地設(shè)置為false

WeiXinFactory,WeiXinPay 位于JsonModeshareDll下

代碼必using空間

using XNWebEngine.JsonBase;

using XNWebEngine;

using XNWebEngine.XNDBEngine;

using WeiXinFactory;

應(yīng)用模塊類的代碼實現(xiàn),應(yīng)用模塊可調(diào)用的框架函數(shù)見

public partial class HelloMode : BaseJsonMode

初始模塊函數(shù)

static public void SetJsonMode(string sPath, string sName)

{

//完成應(yīng)用模塊基本初始化工作

}

關(guān)于應(yīng)用模塊函數(shù)的屬性:

[ModeMethod("{CanNoLogin:true,CanEnable:true}")]

static public ReturnJson index(HttpContext ctx, Object m_Parame)

紅色部分為函數(shù)說明

CanNoLogin:當(dāng)true時表示該函數(shù)可未到登錄調(diào)用,為false時表示必須登錄調(diào)用默認(rèn)為false

CanEnable:當(dāng)true時表示該函數(shù)啟用,為false時表示該函數(shù)禁止調(diào)用,默認(rèn)為true

CanPost:當(dāng)true時表示該函數(shù)可Post方式啟用,為false時表示該函數(shù)禁止Post方式調(diào)用,默認(rèn)為true

CanGet:當(dāng)true時表示該函數(shù)可Get方式調(diào)用,為false時表示該函數(shù)禁止Get方式調(diào)用,默認(rèn)為true

CanThird:當(dāng)true時表示該函數(shù)可第三方調(diào)用,為false時表示該函數(shù)禁止第三方調(diào)用,默認(rèn)為false

CanClient:當(dāng)true時表示該函數(shù)可瀏覽器調(diào)用,為false時表示該函數(shù)禁止瀏覽器調(diào)用,默認(rèn)為true

CanP2P:當(dāng)true時表示該函數(shù)可其他服務(wù)調(diào)用,為false時表示該函數(shù)禁止其他服務(wù)調(diào)用,默認(rèn)為true

CanCrossDomain:當(dāng)true時表示該函數(shù)可跨域調(diào)用,為false時表示該函數(shù)禁止跨域調(diào)用,默認(rèn)為false

isAppFunction:當(dāng)true時表示該函數(shù)可App調(diào)用,為false時表示該函數(shù)禁止App調(diào)用,默認(rèn)為false

isEncFunction:當(dāng)true時表示該函數(shù)可P2P加密調(diào)用,為false時表示該函數(shù)禁止P2P加密調(diào)用,默認(rèn)為false

關(guān)于函數(shù)的分權(quán),根據(jù)實際使用中經(jīng)常會用到角色對各功能有不同的調(diào)用權(quán)限,該框架的應(yīng)用模塊采用五級分權(quán)模式,為方便權(quán)限配置和分權(quán)函數(shù)編寫,特定義不同權(quán)限函數(shù)采用不同的函數(shù)后綴

超級管理權(quán)限 函數(shù)后綴為_Any

行業(yè)代理權(quán)限 函數(shù)后綴為_HY

企業(yè)管理權(quán)限 函數(shù)后綴為_Company

企業(yè)部門權(quán)限 函數(shù)后綴為_Org

個人權(quán)限 函數(shù)后綴為_Person

特別注意所有外部調(diào)用的應(yīng)用模塊函數(shù)都是靜態(tài)函數(shù)

編寫一個分權(quán)函數(shù)例子如下如有個函數(shù)為Hello有五個分權(quán),那么我們編寫如下

static public ReturnJson Hello(HttpContext ctx,Object m_Parame)

{

ReturnJson m_ReturnJson=new ReturnJson();

try

{

if(HavePower(ctx,"HelloMode","Hello_Any",true).bOK)

{

return Hello_Any(ctx,m_Parame);

}

else

{

if(HavePower(ctx,"HelloMode","Hello_HY",true).bOK)

{

return Hello_HY(ctx,m_Parame);

}

else

{

if(HavePower(ctx,"HelloMode","Hello_Company",true).bOK)

{

return Hello_Company(ctx,m_Parame);

}

else

{

if(HavePower(ctx,"HelloMode","Hello_Any",true).bOK)

{

return Hello_Any(ctx,m_Parame);

}

else

{

if(HavePower(ctx,"HelloMode","Hello_Org",true).bOK)

{

return Hello_Org(ctx,m_Parame);

}

else

{

if(HavePower(ctx,"HelloMode","Hello_Person",true).bOK)

{

return Hello_Personctx,m_Parame);

}

else

{

}

}

}

}

}

}

}

catch(Exception e)

{

m_ReturnJson.bOK=false;

m_ReturnJson.sMsg="執(zhí)行異常";

}

return m_ReturnJson;

}

//各權(quán)限實現(xiàn)函數(shù)

//超級權(quán)限

static public ReturnJson Hello_Any(HttpContext ctx,Object m_Parame)

{

ReturnJson m_ReturnJson=new ReturnJson();

try

{

Hashtable m_HH = new Hashtable();

JsonHelper.OBJToHashTable(m_Parame, m_HH);//獲得參數(shù)

//后續(xù)處理

}

catch

{

m_ReturnJson.bOK=false;

m_ReturnJson.sMsg="調(diào)用異常";

}

return m_ReturnJson;

}

//代理和超級代理權(quán)限

static public ReturnJson Hello_HY(HttpContext ctx,Object m_Parame)

{

ReturnJson m_ReturnJson=new ReturnJson();

try

{

if(HavePower(ctx,"CoreSYS.SYS","IsHYAdministrator",true).bOK)

{

//如是超級代理

return Hello_Any(ctx,m_Parame);

}

Hashtable m_HH = new Hashtable();

JsonHelper.OBJToHashTable(m_Parame, m_HH);//獲得參數(shù)

//后續(xù)處理獲得登錄信息,判斷該用戶是否歸宿權(quán)限范圍

SessionLink m_SessionLink=GetSessionLink(ctx);

//判斷操作數(shù)據(jù)是否為代理企業(yè)

。。。

}

catch

{

m_ReturnJson.bOK=false;

m_ReturnJson.sMsg="調(diào)用異常";

}

return m_ReturnJson;

}

//企業(yè)權(quán)限

static public ReturnJson Hello_Company(HttpContext ctx,Object m_Parame)

{

ReturnJson m_ReturnJson=new ReturnJson();

try

{

Hashtable m_HH = new Hashtable();

JsonHelper.OBJToHashTable(m_Parame, m_HH);//獲得參數(shù)

//后續(xù)處理獲得登錄信息,判斷該用戶是否歸宿權(quán)限范圍

SessionLink m_SessionLink=GetSessionLink(ctx);

//判斷操作數(shù)據(jù)是否為用戶企業(yè)

。。。

}

catch

{

m_ReturnJson.bOK=false;

m_ReturnJson.sMsg="調(diào)用異常";

}

return m_ReturnJson;

}

//部門權(quán)限

static public ReturnJson Hello_Org(HttpContext ctx,Object m_Parame)

{

ReturnJson m_ReturnJson=new ReturnJson();

try

{

Hashtable m_HH = new Hashtable();

JsonHelper.OBJToHashTable(m_Parame, m_HH);//獲得參數(shù)

//后續(xù)處理獲得的登錄信息,判斷該用戶是否歸屬權(quán)限范圍

SessionLink m_SessionLink=GetSessionLink(ctx);

//判斷操作數(shù)據(jù)是否為用戶部門

}

catch

{

m_ReturnJson.bOK=false;

m_ReturnJson.sMsg="調(diào)用異常";

}

return m_ReturnJson;

}

//個人權(quán)限

static public ReturnJson Hello_Person(HttpContext ctx,Object m_Parame)

{

ReturnJson m_ReturnJson=new ReturnJson();

try

{

Hashtable m_HH = new Hashtable();

JsonHelper.OBJToHashTable(m_Parame, m_HH);//獲得參數(shù)

//后續(xù)處理獲得的登錄信息,判斷該用戶是否歸屬權(quán)限范圍

SessionLink m_SessionLink=GetSessionLink(ctx);

//判斷操作數(shù)據(jù)是否為該用戶數(shù)據(jù)

}

catch

{

m_ReturnJson.bOK=false;

m_ReturnJson.sMsg="調(diào)用異常";

}

return m_ReturnJson;

}

對于分權(quán)函數(shù)可能有讀者認(rèn)為直接調(diào)用Hello_Any不就繞過了權(quán)限判斷嗎,在前面章節(jié)里已經(jīng)介紹,框架在反射調(diào)用函數(shù)時會判斷是否對該函數(shù)有執(zhí)行權(quán)限,

關(guān)于函數(shù)執(zhí)行權(quán)限的配置,首先通過后臺配置行業(yè)應(yīng)用模塊權(quán)限,然后對行業(yè)應(yīng)用模塊的函數(shù)執(zhí)行權(quán)限進(jìn)行配置,見下圖

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

選中應(yīng)用行業(yè)進(jìn)行綁定或解綁

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

對行業(yè)應(yīng)用函數(shù)進(jìn)行權(quán)限配置

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

對權(quán)限進(jìn)行具體配置

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

選中要配置的行業(yè),然后可批量配置超級權(quán)限,行業(yè)權(quán)限,企業(yè)權(quán)限,部門權(quán)限,個人權(quán)限,也可但多配置,勾選表示禁用

也可以配置時間范圍調(diào)用或調(diào)用次數(shù)限制配置

為便于快速生成應(yīng)用模塊本框架還編寫一個代碼工廠應(yīng)用模塊方便生成新的應(yīng)用模塊

ASP.NET原創(chuàng)框架九-應(yīng)用模塊開發(fā)(asp.net web開發(fā)框架簡介)

按提示輸入相應(yīng)信息生成應(yīng)用模塊代碼框架

下集將繼續(xù)介紹應(yīng)用模塊編寫

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2023年4月24日 下午3:12
下一篇 2023年4月24日 下午3:28

相關(guān)推薦

  • 中國低代碼行業(yè)生態(tài)發(fā)展洞察報告

    中國低代碼行業(yè)生態(tài)發(fā)展洞察報告 近年來,中國的低代碼行業(yè)迅速發(fā)展,成為推動數(shù)字化轉(zhuǎn)型的重要力量。低代碼開發(fā)平臺的出現(xiàn),為企業(yè)提供了快速、靈活、高效的應(yīng)用開發(fā)解決方案,極大地提升了企…

    科研百科 2024年2月28日
    109
  • oa辦公系統(tǒng)軟件

    oa辦公系統(tǒng)軟件:現(xiàn)代企業(yè)必備神器 隨著現(xiàn)代企業(yè)的快速發(fā)展,oa辦公系統(tǒng)軟件成為了現(xiàn)代企業(yè)必備的神器之一。oa辦公系統(tǒng)軟件是一種用于管理和組織辦公事務(wù)的軟件,可以幫助企業(yè)管理內(nèi)部事…

    科研百科 2024年11月7日
    3
  • 軟件開發(fā)的項目管理系統(tǒng)

    軟件開發(fā)的項目管理系統(tǒng) 隨著軟件開發(fā)行業(yè)的不斷發(fā)展,項目管理系統(tǒng)已經(jīng)成為了軟件開發(fā)過程中必不可少的一部分。一個好的項目管理系統(tǒng)不僅可以提高開發(fā)效率,還可以保證項目的質(zhì)量,降低開發(fā)成…

    科研百科 2025年1月22日
    1
  • 受服裝企業(yè)歡迎的進(jìn)銷存管理軟件,簡單好用(服裝行業(yè)進(jìn)銷存管理軟件)

    受服裝企業(yè)歡迎的進(jìn)銷存管理軟件,簡單好用(服裝行業(yè)進(jìn)銷存管理軟件) 在數(shù)字化時代,越來越多的企業(yè)引入進(jìn)銷存軟件,因為它對提高效率有很大的幫助。軟件管理總是比紙張和墨水方便,這樣也更…

    科研百科 2024年3月24日
    134
  • 科研經(jīng)費(fèi)賬務(wù)處理

    科研經(jīng)費(fèi)賬務(wù)處理的重要性 科研經(jīng)費(fèi)賬務(wù)處理是科研過程中非常重要的一環(huán),它關(guān)系到科研活動的開展和成果的實現(xiàn)??蒲薪?jīng)費(fèi)賬務(wù)處理的正確與否,直接決定了科研活動的效果和質(zhì)量。本文將介紹科研…

    科研百科 2024年10月21日
    2
  • 科研項目會計 科研項目會計分錄

    科研項目會計分錄的編制 科研項目會計分錄是記錄和報告科研項目期間的財務(wù)活動的重要方式。在科研項目期間,研究人員需要進(jìn)行許多不同的會計活動,包括采購材料、支付費(fèi)用、處理收入和支出等。…

    科研百科 2024年4月1日
    132
  • VMD更改材料透明度

    VMD更改材料透明度 在計算機(jī)圖形學(xué)中,材料透明度是一個非常重要的概念。它描述了一個圖形對象所占用的可見部分的比例。通常,材料的透明度可以通過更改其屬性(如材質(zhì)和紋理)來實現(xiàn)。然而…

    科研百科 2024年11月30日
    18
  • 項目管理工具 有哪些

    項目管理工具是組織管理中非常重要的一個環(huán)節(jié),能夠幫助管理者更好地規(guī)劃和控制項目進(jìn)度,提高項目質(zhì)量和效率。今天,我們將介紹一些常用的項目管理工具。 一、敏捷開發(fā)敏捷開發(fā)是一種基于人的…

    科研百科 2024年5月27日
    38
  • 科研“特許”竟成捕撈“特權(quán)”?

    相關(guān)部門在長江流域非法捕撈高發(fā)水域巡查執(zhí)法。(資料照片) 在禁漁區(qū)和禁漁期,漁業(yè)資源監(jiān)測是為數(shù)不多的特許捕撈類型。然而記者調(diào)查發(fā)現(xiàn),一些科研人員和調(diào)查船將漁業(yè)監(jiān)測當(dāng)作牟利“特權(quán)”,…

    科研百科 2024年4月15日
    75
  • 科研項目經(jīng)費(fèi)分配比例是多少(科研項目經(jīng)費(fèi)管理系統(tǒng))

    科研項目經(jīng)費(fèi)管理系統(tǒng)科研項目經(jīng)費(fèi)管理系統(tǒng)(1)教育部直屬區(qū)域高校。(2)陜西省中部高校中三類(甲):師范類、師范類、理工類、藝術(shù)類、數(shù)學(xué)類。(3)陜西省中部高校中三類(甲):文科、…

    科研百科 2024年5月18日
    45