999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于.net的安全性驗證

2008-07-14 10:05:50唐歆瑜
電腦知識與技術 2008年18期

李 云  唐歆瑜

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

關鍵詞:身份驗證;自定義主體;自定義身份

中圖法分類號:TP311文獻標識碼:A文章編號: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

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

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

1 總體設計

.NET 基于角色安全性驗證的核心是主體(Principal)和標識(Identity)對象,其中主體負責角色或者組的驗證,標識對象封裝了有關正在驗證的用戶或實體的信息。角色安全性驗證通過生成可供當前線程使用的主體信息來支持授權,其中主體用關聯(lián)的標識進行構造。驗證用戶后對其進行授權,授權允許細致地定義角色和方法,這些角色可利用這些方法與應用程序的操作或資源進行交互。驗證涉及允許訪問,而授權則精確定義了允許哪些訪問內(nèi)容。

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

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

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

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

圖2 數(shù)據(jù)庫關系圖

3 業(yè)務邏輯層

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

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

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

class SiteIdentity: IIdentity

Name 當前身份名稱

UserId 用戶編號

Password 二進制格式的加密密碼

TestPassword(string) 驗證用戶密碼

Authentication 身份驗證類別,返回”自定義身份驗證”

IsAuthentication 當前身份是否為已經(jīng)驗證

classSitePrincipal: IPrincipal

Identity 獲取當前主體的身份

IsInrole 當前主體是否屬于某個角色

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

Roles 主體所屬角色列表

ValidateLogin 驗證登陸電子郵件和密碼

HasPermission 主體是否具有某項許可

EncrptPassword 加密用戶密碼

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

4.1 Web.Config設置

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

<authentication mode="Forms" >

<forms

name="edaWebLogin"

path="/"

loginUrl="Accounts/Admin/Login.aspx"

protection="All"

timeout="30">

</forms>

</authentication>

4.2 全局應用程序Global.aspx.cs代碼

public void Application_AuthenticateRequest(Object sender, EventArgs e )

{//嘗試對使用進行身份驗證時激發(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 驗證用戶身份

//驗證用戶是否具有書籍管理功能

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

{if (Me.IsPostBack == False)

if (! Context.User.Identity.IsAuthenticated

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

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

……}

}

5 NTFS文件管理及強名稱程序集

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

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

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

6 結束語

本文采用ASP.NET開發(fā)的WEB應用程序,構建了一個靈活方便的安全權限管理系統(tǒng),綜合使用了數(shù)據(jù)庫技術、面向對象設計技術、操作系統(tǒng)權限管理、NET框架中基于代碼訪問安全性和基于角色訪問安全性等多方面技術,提供了基于Form的應用程序安全驗證。該方案可以用于多數(shù)WEB系統(tǒng)中,作為通用的安全權限管理模塊。

參考文獻:

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

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

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

收稿日期:

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

主站蜘蛛池模板: 777午夜精品电影免费看| 一级毛片免费的| 国产美女一级毛片| 一级毛片免费的| 欧美视频在线播放观看免费福利资源| 2022国产无码在线| 在线不卡免费视频| 国产精品美女自慰喷水| 久久精品欧美一区二区| 亚洲欧美自拍中文| 无码内射在线| 亚洲一道AV无码午夜福利| 日韩在线2020专区| 99在线视频免费观看| 久久永久免费人妻精品| 在线免费观看AV| 青青操视频免费观看| 99re在线观看视频| 国产精品片在线观看手机版| 在线观看亚洲人成网站| 国产久草视频| 99人妻碰碰碰久久久久禁片| 亚洲欧洲日韩综合| 亚洲日韩AV无码一区二区三区人| 国产偷国产偷在线高清| 亚洲天堂成人| 日韩高清中文字幕| 日本国产精品一区久久久| 欧洲免费精品视频在线| 国产免费人成视频网| 久无码久无码av无码| 亚欧乱色视频网站大全| 国产成人免费观看在线视频| 美女无遮挡被啪啪到高潮免费| 国产精品林美惠子在线观看| 亚洲第一页在线观看| 免费A∨中文乱码专区| 天天躁夜夜躁狠狠躁图片| 亚洲精品不卡午夜精品| 午夜无码一区二区三区| 欧洲亚洲一区| 九九热精品视频在线| 自偷自拍三级全三级视频| 巨熟乳波霸若妻中文观看免费| 中文字幕中文字字幕码一二区| 91在线播放国产| 国产成人亚洲欧美激情| 国产精品亚洲精品爽爽| 国产免费好大好硬视频| 亚洲国产精品人久久电影| 伊人AV天堂| 亚洲国产系列| 国产主播喷水| 日韩欧美高清视频| 久久久国产精品免费视频| 久久国产毛片| 精品国产免费观看| 在线免费a视频| 亚洲国产欧美自拍| 国产亚洲视频免费播放| 国产激爽大片在线播放| 无码AV高清毛片中国一级毛片 | 欧美成人区| 色成人亚洲| 制服丝袜亚洲| 亚洲最新在线| 成人在线不卡视频| 国产人前露出系列视频| 亚洲第一黄片大全| 国产成人超碰无码| 国产成人无码Av在线播放无广告| 丝袜久久剧情精品国产| 精品福利视频网| 久草网视频在线| 日日碰狠狠添天天爽| 大香网伊人久久综合网2020| 亚洲精品视频免费观看| 久久亚洲精少妇毛片午夜无码| 亚洲欧美精品在线| 精品精品国产高清A毛片| 亚洲精品无码高潮喷水A| 国产精品13页|