六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ASP.NET2.0應(yīng)用中定制安全憑證之理論篇

[摘要]閱讀提要 在缺省狀況下,你只能使用Visual Studio 2005的一個(gè)本機(jī)實(shí)例來管理與ASP.NET 2.0一同發(fā)行的SQL Server數(shù)據(jù)庫中的安全憑證。本文將向你展示怎樣用一個(gè)Web服務(wù)來包裝ASP.NET 2.0提供者并通過使用一個(gè)Windows表單應(yīng)用程序來管理憑證存儲(chǔ)從而擴(kuò)展這種...
閱讀提要 在缺省狀況下,你只能使用Visual Studio 2005的一個(gè)本機(jī)實(shí)例來管理與ASP.NET 2.0一同發(fā)行的SQL Server數(shù)據(jù)庫中的安全憑證。本文將向你展示怎樣用一個(gè)Web服務(wù)來包裝ASP.NET 2.0提供者并通過使用一個(gè)Windows表單應(yīng)用程序來管理憑證存儲(chǔ)從而擴(kuò)展這種管理能力。

  如今,無論是互聯(lián)網(wǎng)還是企業(yè)內(nèi)部局域網(wǎng)程序一般都要求使用定制的方式來存儲(chǔ)和管理用戶帳戶和角色。為此,ASP.NET 2.0提供了一個(gè)現(xiàn)成的提供者模型和一個(gè)SQL Sever數(shù)據(jù)庫。不幸的是,只能通過Visual Studio 2005來管理該憑證數(shù)據(jù)庫且只能針對(duì)本機(jī)Web應(yīng)用程序。這無疑是非常不方便而且不能廣泛使用的。

  本文描述了一個(gè)超級(jí)用戶可以使用的完全定制的安全管理應(yīng)用程序。這個(gè)應(yīng)用程序通過用一個(gè)WEB服務(wù)對(duì)ASP.NET 2.0提供者進(jìn)行了包裝并增加了一些功能。本文詳細(xì)描述了其中的設(shè)計(jì)方法,面臨的問題和包含在應(yīng)用程序中的技術(shù)。同時(shí)還向你介紹了一些有用而強(qiáng)有力的技術(shù),如基于接口的Web服務(wù),基于反射的Web服務(wù)兼容性,高級(jí)C# 2.0編程,Web服務(wù)安全性和Web服務(wù)事務(wù)等。

  一、ASP.NET 2.0憑證基礎(chǔ)結(jié)構(gòu)

  基于互聯(lián)網(wǎng)的應(yīng)用程序常常不依賴Windows帳戶和組,而是依賴于基于表單的認(rèn)證并結(jié)合某種如SQL Server的后臺(tái)定制憑證存儲(chǔ)。為了幫助開發(fā)者免除重復(fù)設(shè)計(jì)和構(gòu)建這樣的解決方案,ASP.NET 2.0發(fā)行中加入了一個(gè)現(xiàn)成的安全憑證基礎(chǔ)結(jié)構(gòu)。ASP.NET 2.0憑證存儲(chǔ)并不僅可用于ASP.NET應(yīng)用程序,而且ASP.NET Web服務(wù)和Windows表單應(yīng)用程序都能使用它來管理它們的用戶憑證。另外,Windows通訊基礎(chǔ)(編碼名為Indigo)服務(wù)也能被容易地設(shè)置來使用ASP.NET 2.0安全憑證存儲(chǔ)。

  ASP.NET 2.0使用一提供者模型來訪問和管理憑證以避免把應(yīng)用程序耦合到任何特定存儲(chǔ)上。在利用抽象提供者模型的優(yōu)點(diǎn)的同時(shí)由程序員來開發(fā)這個(gè)應(yīng)用程序。超級(jí)用戶負(fù)責(zé)選擇和管理特定的憑證存儲(chǔ)。圖1顯示出ASP.NET 2.0安全提供者的架構(gòu)。

ASP.NET2.0應(yīng)用中定制安全憑證之理論篇

圖1.ASP.NET 2.0安全提供者模型
  Membership Provider負(fù)責(zé)管理用戶,而Role Provider負(fù)責(zé)管理角色。在憑證存儲(chǔ)中,每個(gè)用戶或角色僅限于一應(yīng)用程序之內(nèi)。這樣就允許不同應(yīng)用程序使用一樣的憑證存儲(chǔ)而不會(huì)與彼此的用戶名或角色相沖突。ASP.NET為SQL服務(wù)器、Windows和活動(dòng)目錄(見圖1)等的憑證存儲(chǔ)提供支持。為了安裝SQL Server憑證數(shù)據(jù)庫,可以運(yùn)行aspnet_regsql.exe程序,其位置是:

<WINDOWS>\Microsoft.NET\Framework\<version>

  這個(gè)安裝程序創(chuàng)建一個(gè)稱為aspnetdb的新數(shù)據(jù)庫-它包含一組應(yīng)用程序的表、用戶、角色以及存取這些表的存儲(chǔ)過程。這個(gè)SQL Server數(shù)據(jù)庫是運(yùn)用最新的安全技術(shù)經(jīng)過精心設(shè)計(jì)的。另外,ASP.NET 2.0還提供一套相應(yīng)于提供者的類(圖1)。

  使用哪個(gè)提供者的信息被保存在應(yīng)用程序的配置文件(App.Config或Web.Config)中。你幾乎不需要直接與特定的提供者進(jìn)行交互;而是,存在兩個(gè)靜態(tài)助理類:Membership和Roles-它們負(fù)責(zé)從配置文件中讀取使用哪個(gè)提供者。默認(rèn)的提供者(即當(dāng)沒有指定提供者時(shí))就是SQL Server。Membership類(列表1)允許你創(chuàng)建和刪除用戶,檢索關(guān)于用戶的信息并觀看口令策略。

  列表1: Membership助理類

[Serializable]
public class MembershipUser{
 public virtual bool ChangePassword(string oldPassword,string newPassword);
 public virtual string GetPassword(string passwordAnswer);
 public virtual string ResetPassword(string passwordAnswer);
 public virtual bool UnlockUser();
 //其它成員
}
public static class Membership{
 public static string ApplicationName{get;set;}
 public static MembershipUser CreateUser(string username, string password);
 public static MembershipUser CreateUser(string username, 
 string password, string email, string passwordQuestion,
 string passwordAnswer, bool isApproved, out MembershipCreateStatus status);
 public static bool DeleteUser(string username,bool deleteAllRelatedData);
 public static MembershipUser GetUser(string username);
 public static void UpdateUser(MembershipUser user);
 public static bool ValidateUser(string username,string password);
 public static bool EnablePasswordReset{get;}
 public static bool EnablePasswordRetrieval{get;}
 //其它成員
}
  例如,為了在"MyApp"應(yīng)用程序中創(chuàng)建一新用戶,你僅需如下編碼: 

Membership.ApplicationName = "MyApp";
Membership.CreateUser("MyUser","MyPassword",...);
  Roles類允許你創(chuàng)建和刪除用戶角色,從角色中添加或刪除用戶,檢索用戶的角色會(huì)員信息以及驗(yàn)證角色會(huì)員。下面是該類的定義:

public static class Roles{
 public static string ApplicationName{get;set;}
 public static void CreateRole(string roleName);
 public static bool DeleteRole(string roleName, bool throwOnPopulatedRole);
 public static void AddUserToRole(string username, string roleName);
 public static void RemoveUserFromRole(string username, string roleName);
 public static string[] GetAllRoles();
 public static string[] GetRolesForUser(string username);
 public static string[] GetUsersInRole(string roleName);
 public static bool IsUserInRole(string username, string roleName);
 //其它成員
}
  例如,要把角色"Manager"添加到應(yīng)用程序"MyApp"上,你可以如下編碼:

Roles.ApplicationName = "MyApp";
Roles.CreateRole("Manager");

[1] [2]  下一頁




主站蜘蛛池模板: 亚洲永久免费视频 | 亚洲视频播放 | 亚洲一区www | 色综合中文字幕 | 在线一区视频 | 日本五级床片在线观看 | 亚洲91视频| 色综合久久丁香婷婷 | 五月天婷婷丁香中文在线观看 | 天天操天天操天天干 | 婷婷六月综合网 | 日韩成人在线影院 | 全黄一级裸片视频免费区 | 天天艹日日干 | 亚洲啪啪免费视频 | 日韩欧美综合在线二区三区 | 青草视频在线观看免费 | 天天躁狠狠躁 | 一级一级 a爱片免费视频 | 欧洲a级片 | 日韩成人小视频 | 日韩一区二区三区免费视频 | 欧美一级视频免费观看 | 做a的视频免费 | 日日日日人人人夜夜夜2017 | 亚欧毛片基地国产毛片基地 | 青青影视 | 一级欧美在线的视频 | 热热99 | 亚洲高清综合 | 日本一区二区三区免费在线观看 | 日本狠狠干 | 婷婷开心中文字幕 | 日韩一区二区免费看 | 日韩视频观看 | 亚洲国产一区在线精选 | 色噜噜噜 | 一二三四影院免费观看 | 色偷偷亚洲女人天堂观看欧 | 色综合视频 | 青青操影院 |