第一篇:(FINISHED)(COPIED)創(chuàng)建一個私有命名空間[定稿]
以下列出創(chuàng)建一個私有命名空間的步驟以及函數(shù)知識點
源碼:
int WINAPI WinMain(…){
//創(chuàng)建一個邊界描述符
Char szBoundaryText[] = “Boundary”;
HANDLE hBoundary = CreateBoundaryDescriptor(szBoundaryText,0);
//創(chuàng)建一個SID
BYTE localAdminSID[SECURITY_MAX_SID_SIZE];
PSID plocalAdminSID = &localAdminSID;
DWORD cbSID = sizeof(localAdminSID);
CreateWellKnownSid(WinBuiltinAdministratorsSid,NULL,plocalAdminSID,&cbSID);
//將SID和邊界描述符關聯(lián)起來
AddSIDToBoundaryDescriptor(&hBoundary,plocalAdminSID);
//初始化安全描述符
SECURITY_ATTRIBUTES sa;
sa.bInheritHandle = FALSE;
sa.nLength = sizeof(sa);
ConvertStringSecurityDescriptorToSecurityDescriptor(TEXT(“D(A;;GA;;;BA)”), SDDL_REVISION_1,&sa.lpSecurityDescriptor,NULL);
//創(chuàng)建私人命名空間,第三個參數(shù)就是以后用的前綴
HANDLE hNamespace = CreatePrivateNamespace(&sa.hBoundary,szBoundaryText);
//釋放安全描述符
LocalFree(sa.lpSecurityDescriptor);
//嘗試在私人命名空間中創(chuàng)建一個Mutex Object,并檢測是否為首例程
HANDLE hMutex = CreateMutex(NULL,FALSE,TEXT(“BoundaryMutex”));
If(GetLastError()==ERROR_ALREADY_EXISTS)Printf(“Another Instance is running n”);
else printf(“First Instance”);}
下面介紹函數(shù)
CreateBoundaryDescriptor HANDLE WINAPI CreateBoundaryDescriptor(_In_ LPCTSTR Name,_In_ ULONG Flags);Parameters Name [in]
邊界描述符的名字 Flags [in]
保留,設為NULL Return value
如果函數(shù)成功了,返回值就是一個到邊界描述符的句柄
如果函數(shù)失敗了,那么返回值就是NULL??梢哉{(diào)用GetLastError來獲得更多的錯誤信息.Remarks
一個新的邊界描述符必須有至少一個的SID。
CreateWellKnownSid BOOL WINAPI CreateWellKnownSid(_In_
WELL_KNOWN_SID_TYPE WellKnownSidType,_In_opt_
PSID DomainSid,_Out_opt_ PSID pSid,_Inout_
DWORD *cbSid);Parameters WellKnownSidType [in]
WELL_KNOWN_SID_TYPE枚舉型結構的成員,specifies what the SID will identify DomainSid [in, optional]
一個指向SID的指針that identifies the domain to use when creating the SID.若為NULL,則使用本地計算機 pSid [out, optional]
一個指向內(nèi)存的指針,用來存儲新的SID cbSid [in, out]
一個雙字指針描述了pSid中的可用字節(jié)數(shù).Return value
如果函數(shù)成功了,返回值為非零
如果函數(shù)失敗了,那么返回值為0.要得到更多的錯誤信息,調(diào)用GetLastError函數(shù)
AddSIDToBoundaryDescriptor BOOL WINAPI AddSIDToBoundaryDescriptor(_Inout_ HANDLE *BoundaryDescriptor,_In_
PSID RequiredSid);Parameters BoundaryDescriptor [in, out] 一個指向邊界描述符的句柄 RequiredSid [in] 一個指向SID結構的指針
Return value 如果函數(shù)成功了,返回值非零
如果函數(shù)失敗了,那么返回值為0.得到更多錯誤信息,調(diào)用GetLastError函數(shù)
ConvertStringSecurityDescriptorToSecurityDescriptor
BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptor(_In_
LPCTSTR StringSecurityDescriptor,_In_
DWORD StringSDRevision,_Out_ PSECURITY_DESCRIPTOR *SecurityDescriptor,_Out_ PULONG SecurityDescriptorSize);Parameters StringSecurityDescriptor [in] 一個指向包含字符串形式的安全描述符的指針
StringSDRevision [in] 目前此值只能被設定為SDDL_REVISION_1 SecurityDescriptor [out]
一個指向變量的指針,用來接收安全描述符。
SecurityDescriptorSize [out]
一個指向變量的指針,用來接收安全描述符的大小(以字節(jié)數(shù)表示)。此值可以設為NULL,表示不需要這個值 Return value 如果函數(shù)成功,返回值為非零
如果函數(shù)失敗,那么返回值為0.要得到更多信息,調(diào)用GetLastError函數(shù),返回值可能如下:
ERROR_INVALID_PARAMETER
有一個參數(shù)是無效的
ERROR_UNKNOWN_REVISION
SDDL revision level 是無效的
ERROR_NONE_MAPPED
輸入的安全描述符字符串中的SID不能被找到
CreatePrivateNamespace HANDLE WINAPI CreatePrivateNamespace(_In_opt_ LPSECURITY_ATTRIBUTES lpPrivateNamespaceAttributes,_In_
LPVOID lpBoundaryDescriptor,_In_
LPCTSTR lpAliasPrefix);Parameters lpPrivateNamespaceAttributes [in, optional]
一個指向SECURITY_ATTRIBUTES結構的指針,描述了”命名空間對象”的安全屬性 lpBoundaryDescriptor [in]
一個邊界描述符,調(diào)用者必須在這個邊界內(nèi)。
lpAliasPrefix [in]
命名空間的前綴,以后要在這個命名空間內(nèi)創(chuàng)建內(nèi)核對象的時候只需要如下填寫對象名prefixobjectname
只要邊界描述符是不同的,不同命名空間的前綴可以相同。
Return value 如果函數(shù)成功了,那么會返回一個到新的命名空間對象的句柄
如果函數(shù)失敗了,那么函數(shù)會返回NULL,如果要得到更多的消息,那么調(diào)用GetLastError Remarks 其他應用程序可以訪問命名空間通過調(diào)用OpenPrivateNamespace 創(chuàng)建此命名空間的應用程序可以調(diào)用ClosePrivateNamespace來關閉到該命名空間對象的句柄。當這個進程終止時,這個句柄也會被關閉。在到命名空間的句柄關閉后,后續(xù)對OpenPrivateNamespace的調(diào)用會全部失敗,但是命名空間內(nèi)的對象上的操作可以成功。
第二篇:使用DFS創(chuàng)建命名空間
使用DFS創(chuàng)建命名空間
如果想把零散的共享資源組織起來,可以使用DFS創(chuàng)建命名空間。以下是win7之家所介紹的建命名空間的步驟。
步驟1:打開【DFS管理】窗口,右擊【命名空間】結點,執(zhí)行【新建命名空間】命令,如下圖所示。
新建命名空間
步驟2:windows7系統(tǒng)下載彈出【新建命名空間向?qū)А繉υ捒?,根?jù)向?qū)崾咎顚懴嚓P的信息,即可順利地新建命名空間。
第三篇:創(chuàng)建一個以你的名字命名的表空間
3、創(chuàng)建一個以你的名字命名的表空間,在此表空間增加一個數(shù)據(jù)文件。
4、分別設置表空間的狀態(tài)為脫機、只讀、讀寫和聯(lián)機方式。5、6、7、8、5、創(chuàng)建一個新的數(shù)據(jù)庫test.上機任務4 Oracle 10g數(shù)據(jù)庫的角色和用戶創(chuàng)建及權限設置
1、用命令方式在此數(shù)據(jù)庫下創(chuàng)建一個以你的姓名縮寫為名稱的表空間。
2、在剛才創(chuàng)建好的表空間中創(chuàng)建一個以你的姓名縮寫為名稱的用戶,密碼為你的姓名縮寫加學號。
3、把對SCOTT.DEPT表中更新DNAME的權限授予你剛創(chuàng)建的用戶。
4、創(chuàng)建一個角色SUI使其對SCOTT.EMP的表有查詢、更新、插入的權利。
5、把這個創(chuàng)建好的角色授予給在步驟二中創(chuàng)建的用戶。
6、試著把創(chuàng)建表的管理權限授予你剛創(chuàng)建的用戶。
7、四、上機內(nèi)容(全部使用命令方式完成)
1、創(chuàng)建以你的名字命名的用戶名和以你的五個同學的名字命名的五個用戶。
2、在你的用戶名下創(chuàng)建USERS表。
3、在USERS表中插入三條數(shù)據(jù)。
4、創(chuàng)建一個以你的名字縮寫為名稱的角色。
5、把對表USERS的查詢、插入、刪除、更新的權限授予你剛創(chuàng)建的角色。
6、把角色授予你的五個同學。
7、把對表USERS刪除和插入權限從你五個同學那收回。
第四篇:WebSerives System.Xml.Serialization命名空間
要使用.NET進行對象的序列化,必須在解決方案中添加System.Xml的引用,并且在類文件中引入System.Xml.Serialization命名空間。這樣就可以在文件中使用序列化所需要的各種特性了。
Imports System.Xml.Serialization
如果對XML Serialization缺少了解,請首先參考拙文:在.NET中實現(xiàn)對象序列化
上面的例子包含了典型的XML中常見的各種元素:XML聲明、XML根節(jié)點、XML節(jié)點、XML屬性、XML集合。除XML聲明外,在.NET中都有對應的特性用于定義這些元素。這些特性包括:XmlRootAttribute、XmlTypeAttribute、XmlElementAttribute、XmlAttributeAttribute、XmlArrayAttribute和XmlArrayItemAttribute。另外,還有兩個常用的特性,XmlIgnoreAttribute用于標記在對象序列化時需要被忽略的部分,XmlIncludeAttribute用于標記在生成XML Schema時需要包括的類型。
如果沒有顯式地標記任何特性,那么默認類的特性為XmlTypeAttribute、類成員的特性為XmlElementAttribute,且名稱為類或類成員的名稱。例如:
Public Class Order
Public ID As String
Public OrderDate As String
End Class
如果不做任何特性標記,使用下面的代碼序列化時: Dim o As New Order
With o
.ID = 123456
.OrderDate = Date.Now.ToShortDateString
End With
Dim writer As New XmlTextWriter(“abc.xml”, Encoding.UTF8)
Dim serializer As New XmlSerializer(GetType(Order))
writer.Formatting = Formatting.Indented serializer.Serialize(writer, o)
序列化后的XML為:
可以看到,
XML聲明是.NET自動添加的,但是encoding是在XmlTextWriter中指定的,如果不指定encoding,那么XML聲明只有。我使用的是.NET 1.1,這個版本中只支持XML 1.0版本。另外,如果不指定encoding,那么默認的編碼可能也是UTF8(沒找到相關的資料)。
.NET默認為Order類添加了XMLSchema和XMLSchema-instance兩個W3C的命名空間。該命名空間也可以自己指定,方法是使用XmlSerializer的另一個Serialize方法。
Dim ns As New XmlSerializerNamespaces ns.Add(“", ”“)writer.Formatting = Formatting.Indented serializer.Serialize(writer, o, ns)
要將類序列化為XML節(jié)點:
Public Class Order
‘ any code here.End Class
要將類序列化為XML根節(jié)點:
Public Class Order
‘ any code here.End Class
當在類中同時使用XmlRootAttribute、XmlTypeAttribute時,序列化文檔中的類型以XmlRootAttribute為準:
Public Class Order
‘ any code here.End Class
要將類成員序列化為XML節(jié)點:
Public ID As String
要將類成員序列化為XML屬性:
Public ID As String
要將類成員序列化為XML集合:
Public Class Order
Public ID As String
Public orderDate As String
Public Items As New ArrayList
End Class
Public Class OrderItem
Public Name As String
End Class
使用特性的一個好處是:可以在代碼和序列化的文檔中使用不同的編碼規(guī)范。
第五篇:.Net常用命名空間和類介紹.doc
.Net常用命名空間和類介紹
一、基礎命名空間 ? System.Collections 包含了一些與集合相關的類型,比如列表,隊列,位數(shù)組,哈希表和字典等.? System.IO 包含了一些數(shù)據(jù)流類型并提供了文件和目錄同步異步讀寫.? System.Text 包含了一些表示字符編碼的類型并提供了字符串的操作和格式化 ? System.Reflection 包括了一些提供加載類型,方法和字段的托管視圖以及動態(tài)創(chuàng)建和調(diào)用類 型功能的類型.? System.Threading 提供啟用多線程的類和接口.二、圖形命名空間 ? System.Drawing 這個主要的GDI+命名空間定義了許多類型,實現(xiàn)基本的繪圖類型(字體,鋼筆,基本畫筆等)和無所不能的Graphics對象. ? System.Drawing2D 這個命名空間提供高級的二維和失量圖像功能. ? System.Drawing.Imaging 這個命名空間定義了一些類型實現(xiàn)圖形圖像的操作. ? System.Drawing.Text 這個命名空間提供了操作字體集合的功能. ? System.Drawing.Printing 這個命名空間定義了一些類型實現(xiàn)在打印紙上繪制圖像,和打印機交互以及格式化某個打印任務的總體外觀等功能.
三、數(shù)據(jù)命名空間 ? System.Data 包含了數(shù)據(jù)訪問使用的一些主要類型. ? System.Data.Common 包含了各種數(shù)據(jù)庫訪問共享的一些類型. ? System.XML 包含了根據(jù)標準來支持XML處理的類. ? System.Data.OleDb 包含了一些操作OLEDB數(shù)據(jù)源的類型. ? System.Data.Sql 能使你枚舉安裝在當前本地網(wǎng)絡的SQL Server實例. ? System.Data.SqlClient 包含了一些操作MS SQL Server數(shù)據(jù)庫的類型,提供了和 System.Data.OleDb相似的功能,但是針對SQL做了優(yōu)化. ? System.Data.SqlTypes 提供了一些表示SQL數(shù)據(jù)類型的類. ? System.Data.Odbc 包含了操作Odbc數(shù)據(jù)源的類型. ? System.Data.OracleClient 包含了操作Odbc數(shù)據(jù)庫的類型. ? System.Transactions 這個命名空間提供了編寫事務性應用程序和資源管理器的一些類.
四、WEB命名空間 ? System.Web 這個命名空間包含啟用瀏覽器/服務器通信的類和接口.這些命名空間類用于管 理到客戶端的HTTP輸出和讀取HTTP請求.附加的類則提供了一些功能,用于服 務器端的應用程序以及進程,Cookie管理,文件傳輸,異常信息和輸出緩存的控制.? System.Web.UI 這個命名空間包含Web窗體的類,包括Page類和用于創(chuàng)建Web用戶界面的其 他標準類.? System.Web.UI.HtmlControls 這個命名空間包含用于HTML特定控件的類,這些控件可以添加到Web窗體中 以創(chuàng)建Web用戶界面
? System.Web.UI.WebControls 包含創(chuàng)建ASP.NET服務器控件的類,當添加到窗體時,這些控件將呈現(xiàn)瀏覽器特 定的HTML和腳本,用于創(chuàng)建和設備無關的Web用戶界面.? System.Web.Mobile 包含生成ASP.NET移動應用程序所需要的核心功能,包括身份驗證和錯誤處理.? System.Web.UI.MobileControls 包括一組ASP.NET服務器控件,這些控件可以針對不同的移動設備呈現(xiàn)應用程 序.? System.Web.Services 包含能使你使用和生成XML Web Service的類,這些服務是駐留在服務器中的 可編程實體,并通過標準Internet協(xié)議公開.五、框架服務命名空間 ? System.Diagnostics 這個命名空間所提供的類允許你啟動系統(tǒng)進程,讀取和寫入事件日志以及使用性 能計數(shù)器監(jiān)視系統(tǒng)性能.? System.DirectoryServices 這個命名空間所提供的類可便于從托管代碼中訪問Active Directory.此命名空 間中的類可以與任何Active Directory服務提供程序一起使用.? System.Media 包含用于播放聲音文件和訪問系統(tǒng)提供的聲音的類.? System.Management 這個命名空間提供的類用于管理一些信息和事件,它們關系到系統(tǒng),設備和WMI 基礎結構所使用的應用程序.? System.Messaging 這個命名空間提供的類用于連接到網(wǎng)絡上的消息隊列,向隊列發(fā)送消息,從隊列 接收或查看消息.? System.ServiceProcess 這個命名空間提供的類用于安裝和運行服務,服務是長期運行的可執(zhí)行文件,它 們不通過用戶界面來運行.? System.Timers 這個命名空間提供基于服務器的計時器組件,用以按指定的間隔引發(fā)事件.六、安全性命名空間 ? System.Security 這個命名空間提供公共語言運行庫安全性系統(tǒng)的基礎結構.? System.Net.Security 這個命名空間提供用于主機間安全通信的網(wǎng)絡流.? System.Web.Security 這個命名空間包含的類用于在Web應用程序中實現(xiàn)ASP.NET安全性.七、網(wǎng)絡命名空間 ? System.Net 包含的類可為當前網(wǎng)絡上的多種協(xié)議提供簡單的編程接口.? System.Net.Cache 這個命名空間定義了一些類和枚舉,用于為使用WebRequest和HttpWebRequest類獲取的資源定義緩存策略.? System.Net.Configuration 這個命名空間包含了以編程方式訪問和更新System.Net命名空間的配置設置的類.? System.Net.Mime 這個命名空間包含了用于將電子郵件發(fā)送到SMTP服務器進行傳送的類.? System.Net.Networkinformation 這個命名空間提供對網(wǎng)絡流量數(shù)據(jù),網(wǎng)絡地址信息和本地計算機的地址更改通知 的訪問,還包含實現(xiàn)Ping實用工具的類.你可以使用Ping和相關的類來檢查是否
可通過網(wǎng)絡訪問某臺計算機.? System.Net.Sockets 這個命名空間為嚴格控制網(wǎng)絡訪問的開發(fā)人員提供Windows套接字接口的托 管實現(xiàn)
八、配置命名空間
? System.Configuration 這個命名空間包含用于以編程方式訪問.Net Framework配置設置并處理配置 文件中錯誤的類.? System.Configuration.Assemblies 這個命名空間包含用于配置程序集的類.? System.Configuration.Provider 這個命名空間包含由服務器和客戶端應用程序共享,以支持可插接式模型輕松添 加或移除功能的基類.九、本地化命名空間 ? System.Globalization 包含的類定義與區(qū)域性相關的信息,其中包括語言,國家地區(qū),所使用的日歷,日期 格式的模式,貨幣與數(shù)字以及字符串的排序順序.? System.Resources 這個命名空間提供一些類和接口,它們使開發(fā)人員得以創(chuàng)建,存儲并管理應用程序中使用的各種區(qū)域性特定資源.? System.Resources.Tools 這個命名空間包含StronglyTypedResourceBuilder類,該類提供對強類型資源 的支持.這個編譯時功能通過創(chuàng)建包含一組靜態(tài)只讀屬性的類封裝對資源的訪問, 從而使得使用資源變得更加容易