亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于.net的安全性驗(yàn)證

        2008-07-14 10:05:50唐歆瑜
        電腦知識(shí)與技術(shù) 2008年18期
        關(guān)鍵詞:身份驗(yàn)證

        李 云  唐歆瑜

        摘要:采用自定義主體Principal和身份Identity實(shí)現(xiàn)基于窗體的安全驗(yàn)證,構(gòu)建了一個(gè)靈活方便的安全權(quán)限管理系統(tǒng),綜合使用了數(shù)據(jù)庫(kù)技術(shù)、面向?qū)ο笤O(shè)計(jì)技術(shù)、操作系統(tǒng)權(quán)限管理、NET框架中基于代碼訪問(wèn)安全性和基于角色訪問(wèn)安全性等多方面技術(shù)。該方案可以用于多數(shù)WEB系統(tǒng)中,作為通用的安全權(quán)限管理模塊。

        關(guān)鍵詞:身份驗(yàn)證;自定義主體;自定義身份

        中圖法分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)01-10ppp-0c

        Securit Authentication Base on .NET

        LI YunTANG Xin-yu

        (Changsha Aeronautic Vocational and Technical College, Hnnan Changsha 410124, China)

        Abstratct: This paper presents an approach for constructing a flexible and convenient Security Management system based on form securit authentication of self-defined principle and identify,combining with database technology,object-oriented design,operating system privilege management,code-based and role-based security access in .NET technology.This new idea can be used in most of Web systems as a universal security privilege management module.

        Key words: Identification and Authentication; self-defined principal; self-defined identif

        安全認(rèn)證是一個(gè)復(fù)雜而關(guān)鍵的問(wèn)題,對(duì)于WEB應(yīng)用程序開(kāi)發(fā),通常在窗體登陸時(shí)實(shí)現(xiàn)認(rèn)證的操作。安全的含義既包括不允許非授權(quán)用戶訪問(wèn)特定資源,也包括允許授權(quán)用戶方便地訪問(wèn)授權(quán)資源。驗(yàn)證是授權(quán)的關(guān)鍵部分。在允許或拒絕用戶的權(quán)限之前,首先必須知道用戶的身份。.NET框架使用身份(identity)和主體(principal)對(duì)象代表用戶。主體對(duì)象對(duì)應(yīng)于一個(gè)用戶,并且包含代表該用戶細(xì)節(jié)的身份對(duì)象??梢詫⒂脩舴诸悶椴煌慕M或角色(role),如管理員和用戶。

        在ASP.NET授權(quán)中,有URL、文件、編碼等授權(quán)方式,最為靈活的方面是通過(guò)編程給用戶授權(quán)的能力。本文設(shè)計(jì)了一種通用的、基于數(shù)據(jù)庫(kù)的、可以靈活應(yīng)用的WEB系統(tǒng)用戶驗(yàn)證與授權(quán)方案。

        1 總體設(shè)計(jì)

        .NET 基于角色安全性驗(yàn)證的核心是主體(Principal)和標(biāo)識(shí)(Identity)對(duì)象,其中主體負(fù)責(zé)角色或者組的驗(yàn)證,標(biāo)識(shí)對(duì)象封裝了有關(guān)正在驗(yàn)證的用戶或?qū)嶓w的信息。角色安全性驗(yàn)證通過(guò)生成可供當(dāng)前線程使用的主體信息來(lái)支持授權(quán),其中主體用關(guān)聯(lián)的標(biāo)識(shí)進(jìn)行構(gòu)造。驗(yàn)證用戶后對(duì)其進(jìn)行授權(quán),授權(quán)允許細(xì)致地定義角色和方法,這些角色可利用這些方法與應(yīng)用程序的操作或資源進(jìn)行交互。驗(yàn)證涉及允許訪問(wèn),而授權(quán)則精確定義了允許哪些訪問(wèn)內(nèi)容。

        要實(shí)現(xiàn)基于Form的身份驗(yàn)證流程,需要做如下幾項(xiàng)工作:1)修改Web.Config文件;2)在登陸文件(比如login.aspx)中將用戶信息寫(xiě)入cookies并加密;3)在Global.asax文件的Application_AuthenticateRequest事件中取得用戶身份;4)在需要授權(quán)才能訪問(wèn)的資源頁(yè)面檢查用戶授權(quán)。

        圖1 ASP.NET安全性處理流程

        2 數(shù)據(jù)庫(kù)設(shè)計(jì)方案

        數(shù)據(jù)庫(kù)表設(shè)計(jì)見(jiàn)圖2,Accounts_PermissionCatego為許可類別表,表示了“橫向”的功能,比如一個(gè)網(wǎng)站有多個(gè)欄目或多個(gè)頻道,就可以劃分多個(gè)許可類別。一個(gè)用戶可以授予多種角色,一個(gè)角色可以包含多個(gè)用戶;一個(gè)角色可以擁有多種許可;一個(gè)許可可以被授予多個(gè)角色。通過(guò)這樣設(shè)計(jì),可以非常靈活的給用戶授權(quán)。Accounts_Permissions為許可列表;Accounts_RolePermissions為角色許可表;Accounts_Roles為角色表;Accounts_UserRole為用戶角色表; Accounts_Users為用戶表;

        圖2 數(shù)據(jù)庫(kù)關(guān)系圖

        3 業(yè)務(wù)邏輯層

        SitePrincipal對(duì)象是實(shí)現(xiàn)了IPrincipal接口的類的實(shí)例,這些對(duì)象用來(lái)表示用戶,并且包括了用戶的身份信息。System.Security.Principal命名空間包括了幾種類型的Principal類,這些類中封裝了程序代碼運(yùn)行的的安全環(huán)境(security context)。

        聲明授權(quán)允許在類層次中和單獨(dú)的方法、屬性或事件上設(shè)置權(quán)限需求。通過(guò)設(shè)置屬性來(lái)做到這一點(diǎn),ASP.NET中內(nèi)置的用戶驗(yàn)證支持非常強(qiáng)大。它能夠在Context(上下文)對(duì)象中自動(dòng)生成一個(gè)名為User的屬性,該屬性允許用戶訪問(wèn)各種信息,包括用戶是否已經(jīng)驗(yàn)證、所使用的驗(yàn)證類型,甚至還有用戶名。.NET系統(tǒng)中的安全機(jī)制基于主題(Principal)的概念,Principal對(duì)象代表以其名義運(yùn)行代碼的用戶的安全環(huán)境。低于主體級(jí)別的是身份(Identity),身份代表執(zhí)行代碼的用戶。因此每一個(gè)主體都有一個(gè)身份。主體和身份用戶WEB站點(diǎn)和遠(yuǎn)程主機(jī)傳遞證書(shū)。

        由于Microsoft.Net沒(méi)有提供一種從數(shù)據(jù)庫(kù)獲取許可級(jí)別的方式,所以要擴(kuò)展NET系統(tǒng)中主體和身份的功能。分配給HttpContext.User 的對(duì)象必須實(shí)現(xiàn)IPrincipal接口,IPrincipal的屬性之一是Identity,而Identity必須實(shí)現(xiàn)IIdentity接口,為此設(shè)計(jì)了兩個(gè)類:SiteIdentity和SitePrincipal實(shí)現(xiàn)上述接口。類的詳細(xì)說(shuō)明如下:

        class SiteIdentity: IIdentity

        Name 當(dāng)前身份名稱

        UserId 用戶編號(hào)

        Password 二進(jìn)制格式的加密密碼

        TestPassword(string) 驗(yàn)證用戶密碼

        Authentication 身份驗(yàn)證類別,返回”自定義身份驗(yàn)證”

        IsAuthentication 當(dāng)前身份是否為已經(jīng)驗(yàn)證

        classSitePrincipal: IPrincipal

        Identity 獲取當(dāng)前主體的身份

        IsInrole 當(dāng)前主體是否屬于某個(gè)角色

        Permissions PermissionsId數(shù)組,許可列表

        Roles 主體所屬角色列表

        ValidateLogin 驗(yàn)證登陸電子郵件和密碼

        HasPermission 主體是否具有某項(xiàng)許可

        EncrptPassword 加密用戶密碼

        4 主要技術(shù)實(shí)現(xiàn)

        4.1 Web.Config設(shè)置

        在配置文件Web.Config中把設(shè)置項(xiàng)中的mode屬性設(shè)置為“Windows”、“Forms”、“Passport”或“None”,可以決定ASP.NET采用的驗(yàn)證模式。本文采用目前廣泛應(yīng)用于internet的窗體驗(yàn)證,即“Forms”身份驗(yàn)證模式。

        <authentication mode="Forms" >

        <forms

        name="edaWebLogin"

        path="/"

        loginUrl="Accounts/Admin/Login.aspx"

        protection="All"

        timeout="30">

        </forms>

        </authentication>

        4.2 全局應(yīng)用程序Global.aspx.cs代碼

        public void Application_AuthenticateRequest(Object sender, EventArgs e )

        {//嘗試對(duì)使用進(jìn)行身份驗(yàn)證時(shí)激發(fā)

        if (HttpContext.Current.User!=null)

        if (HttpContext.Current.User.Identity.IsAuthenticated)

        if ((HttpContext.Current.User.Identity) is FormsIdentity)

        { FormsIdentity Id = HttpContext.Current.User.Identity;

        String useremail = Id.Name.ToString();

        SitePrincipal newUser= New SitePrincipal(useremail);

        HttpContext.Current.User = newUser;}

        }

        4.3Accounts/Admin/Login.aspx用戶提交事件

        private void Click(Object sender, EventArgs e)

        { SitePrincipal newUser =

        _SitePrincipal.ValidateLogin(EmailAddress.Text, Password.Text);

        if( newUser = =null)

        {LoginResult.Text = "登陸失敗 " && EmailAddress.Text;

        LoginResult.Visible = True;}

        else

        {Context.User = newUser;

        FormsAuthentication.SetAuthCookie(EmailAddress.Text, True);

        Response.Redirect("Default.aspx");}

        }

        4.4 驗(yàn)證用戶身份

        //驗(yàn)證用戶是否具有書(shū)籍管理功能

        protected void Page_Load ( System.Object sender, System.EventArgs e)

        {if (Me.IsPostBack == False)

        if (! Context.User.Identity.IsAuthenticated

        || ! ((_SitePrincipal).HasPermission((int)(bookShopPermissions.書(shū)店管理)) Context.User, )

        Response.Redirect("../../Accounts/Admin/Login.aspx?ShowError=true", True);

        ……}

        }

        5 NTFS文件管理及強(qiáng)名稱程序集

        ASP.NET中有兩種基本的用戶授權(quán)方法:基于角色的方法和基于資源的方法?;谫Y源的授權(quán)是特定于具體的資源,并且特定于底層操作系統(tǒng)或網(wǎng)絡(luò)上的用戶或組。在Web內(nèi)容文件上設(shè)置受限制的NTFS權(quán)限,增強(qiáng)應(yīng)用程序的安全性。一個(gè)網(wǎng)站的多個(gè)欄目管理中,其中最重要的、最需要安全保護(hù)的模塊無(wú)疑是“管理人員”管理模塊。本系統(tǒng)中管理用戶模塊包括如下功能:創(chuàng)建新用戶、刪除用戶、創(chuàng)建角色、刪除角色、創(chuàng)建許可、刪除許可、創(chuàng)建許可類別、刪除許可類別,給角色分配許可,給用戶分配角色等等功能。為了重點(diǎn)保護(hù)該模塊功能,該模塊所在文件夾可以通過(guò)操作系統(tǒng)NTFS文件管理功能設(shè)置權(quán)限,由網(wǎng)絡(luò)管理員設(shè)定只有特定用戶(受信任的)才能訪問(wèn)該文件夾。

        如果在web.config文件中存儲(chǔ)證書(shū),使用MD5或SHA-1哈希實(shí)現(xiàn)加密,.NET框架提供的代碼訪問(wèn)安全性,可以減小惡意代碼或包含錯(cuò)誤的代碼濫用本系統(tǒng)的代碼的可能性。代碼訪問(wèn)安全性還有助于最大限度地減少由于代碼中的安全脆弱性而造成的損害。為此使用強(qiáng)名稱對(duì)程序集進(jìn)行簽名。步驟為:

        在NET工具命令提示下,使用sn.exe工具創(chuàng)建密鑰對(duì),例如:sn -k myKey.snk,該命令創(chuàng)建了密鑰文件myKey.snk。使用強(qiáng)名稱為程序集簽名,在要簽名的程序集文件AssemblyInfo.cs中添加:

        6 結(jié)束語(yǔ)

        本文采用ASP.NET開(kāi)發(fā)的WEB應(yīng)用程序,構(gòu)建了一個(gè)靈活方便的安全權(quán)限管理系統(tǒng),綜合使用了數(shù)據(jù)庫(kù)技術(shù)、面向?qū)ο笤O(shè)計(jì)技術(shù)、操作系統(tǒng)權(quán)限管理、NET框架中基于代碼訪問(wèn)安全性和基于角色訪問(wèn)安全性等多方面技術(shù),提供了基于Form的應(yīng)用程序安全驗(yàn)證。該方案可以用于多數(shù)WEB系統(tǒng)中,作為通用的安全權(quán)限管理模塊。

        參考文獻(xiàn):

        [1] 麻昌德,易高翔.使用ASP.NET/Web服務(wù)實(shí)現(xiàn)新聞發(fā)布系統(tǒng)[J].計(jì)算機(jī)應(yīng)用與軟件,2004(10):42-43.

        [2] Dave Sussman,Alex Homer著,王毅譯.ASP.NET高級(jí)編程[M].北京:清華大學(xué)出版社,2002.

        [3] 花振峰,楊偉民,張生..NET組件和COM組件的應(yīng)用集合研究[J].電子工程師,2005(2):71-73.

        收稿日期:

        作者簡(jiǎn)介:李云(1973-),女,山東青島人,講師,碩士研究生,研究方向:軟件工程。

        猜你喜歡
        身份驗(yàn)證
        基于OTP的機(jī)房管理智能控制系統(tǒng)的實(shí)現(xiàn)
        聲紋識(shí)別認(rèn)證云落戶貴州
        可信計(jì)算的無(wú)線傳感器網(wǎng)絡(luò)終端身份認(rèn)證機(jī)制探討
        HID Global收購(gòu)Arjo Systems擴(kuò)大政府身份驗(yàn)證業(yè)務(wù)
        人臉識(shí)別身份驗(yàn)證系統(tǒng)在養(yǎng)老保險(xiǎn)生存核查中的應(yīng)用
        基于Windows下的文件保密隱藏系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        一種融合角點(diǎn)特征匹配的人臉優(yōu)化識(shí)別方法
        更安全的雙重密碼保護(hù)
        CHIP新電腦(2015年3期)2015-04-02 17:55:46
        Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia
        HID Global推動(dòng)多層身份驗(yàn)證解決方案
        人妻体内射精一区二区三四| 视频一区中文字幕在线观看| 羞羞色院99精品全部免| 99热在线观看| 国产自国产在线观看免费观看| 国产精品福利片免费看| 视频一区二区三区国产| 亚洲中字幕日产av片在线| 国产精品无码a∨精品影院| 岛国大片在线免费观看| 亚洲一区二区三区精品久久| 中文字幕亚洲综合久久天堂av| 欧美性巨大╳╳╳╳╳高跟鞋| 久久久久久人妻精品一区百度网盘 | 国产情侣自拍偷拍精品| 亚洲欧洲日产国码av系列天堂 | 日韩少妇人妻中文视频| 天天天天躁天天爱天天碰2018| XXXXBBBB欧美| 最新四色米奇影视777在线看| 麻豆精品网站国产乱子伦| 日本中出熟女一区二区| 丰满精品人妻一区二区| 水蜜桃精品一二三| Y111111国产精品久久久| 中文亚洲成a人片在线观看| 在线日本国产成人免费精品| 疯狂添女人下部视频免费| 欧美日韩在线免费看| 日本高清不卡一区二区三区| 亚洲一区二区三区四区精品在线| 天天综合网天天综合色| 亚洲自拍愉拍| 久久久亚洲成年中文字幕| 一区二区三区视频| 国产精品6| 国产精品成人久久a级片| 久久亚洲中文字幕乱码| 久久精品国产色蜜蜜麻豆| 国产一区二区三区啪| 隔壁人妻欲求不满中文字幕|