第一篇:使用DFS創建命名空間
使用DFS創建命名空間
如果想把零散的共享資源組織起來,可以使用DFS創建命名空間。以下是win7之家所介紹的建命名空間的步驟。
步驟1:打開【DFS管理】窗口,右擊【命名空間】結點,執行【新建命名空間】命令,如下圖所示。
新建命名空間
步驟2:windows7系統下載彈出【新建命名空間向導】對話框,根據向導提示填寫相關的信息,即可順利地新建命名空間。
第二篇:(FINISHED)(COPIED)創建一個私有命名空間[定稿]
以下列出創建一個私有命名空間的步驟以及函數知識點
源碼:
int WINAPI WinMain(…){
//創建一個邊界描述符
Char szBoundaryText[] = “Boundary”;
HANDLE hBoundary = CreateBoundaryDescriptor(szBoundaryText,0);
//創建一個SID
BYTE localAdminSID[SECURITY_MAX_SID_SIZE];
PSID plocalAdminSID = &localAdminSID;
DWORD cbSID = sizeof(localAdminSID);
CreateWellKnownSid(WinBuiltinAdministratorsSid,NULL,plocalAdminSID,&cbSID);
//將SID和邊界描述符關聯起來
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);
//創建私人命名空間,第三個參數就是以后用的前綴
HANDLE hNamespace = CreatePrivateNamespace(&sa.hBoundary,szBoundaryText);
//釋放安全描述符
LocalFree(sa.lpSecurityDescriptor);
//嘗試在私人命名空間中創建一個Mutex Object,并檢測是否為首例程
HANDLE hMutex = CreateMutex(NULL,FALSE,TEXT(“BoundaryMutex”));
If(GetLastError()==ERROR_ALREADY_EXISTS)Printf(“Another Instance is running n”);
else printf(“First Instance”);}
下面介紹函數
CreateBoundaryDescriptor HANDLE WINAPI CreateBoundaryDescriptor(_In_ LPCTSTR Name,_In_ ULONG Flags);Parameters Name [in]
邊界描述符的名字 Flags [in]
保留,設為NULL Return value
如果函數成功了,返回值就是一個到邊界描述符的句柄
如果函數失敗了,那么返回值就是NULL。可以調用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]
一個指向內存的指針,用來存儲新的SID cbSid [in, out]
一個雙字指針描述了pSid中的可用字節數.Return value
如果函數成功了,返回值為非零
如果函數失敗了,那么返回值為0.要得到更多的錯誤信息,調用GetLastError函數
AddSIDToBoundaryDescriptor BOOL WINAPI AddSIDToBoundaryDescriptor(_Inout_ HANDLE *BoundaryDescriptor,_In_
PSID RequiredSid);Parameters BoundaryDescriptor [in, out] 一個指向邊界描述符的句柄 RequiredSid [in] 一個指向SID結構的指針
Return value 如果函數成功了,返回值非零
如果函數失敗了,那么返回值為0.得到更多錯誤信息,調用GetLastError函數
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]
一個指向變量的指針,用來接收安全描述符的大小(以字節數表示)。此值可以設為NULL,表示不需要這個值 Return value 如果函數成功,返回值為非零
如果函數失敗,那么返回值為0.要得到更多信息,調用GetLastError函數,返回值可能如下:
ERROR_INVALID_PARAMETER
有一個參數是無效的
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]
一個邊界描述符,調用者必須在這個邊界內。
lpAliasPrefix [in]
命名空間的前綴,以后要在這個命名空間內創建內核對象的時候只需要如下填寫對象名prefixobjectname
只要邊界描述符是不同的,不同命名空間的前綴可以相同。
Return value 如果函數成功了,那么會返回一個到新的命名空間對象的句柄
如果函數失敗了,那么函數會返回NULL,如果要得到更多的消息,那么調用GetLastError Remarks 其他應用程序可以訪問命名空間通過調用OpenPrivateNamespace 創建此命名空間的應用程序可以調用ClosePrivateNamespace來關閉到該命名空間對象的句柄。當這個進程終止時,這個句柄也會被關閉。在到命名空間的句柄關閉后,后續對OpenPrivateNamespace的調用會全部失敗,但是命名空間內的對象上的操作可以成功。
第三篇:創建一個以你的名字命名的表空間
3、創建一個以你的名字命名的表空間,在此表空間增加一個數據文件。
4、分別設置表空間的狀態為脫機、只讀、讀寫和聯機方式。5、6、7、8、5、創建一個新的數據庫test.上機任務4 Oracle 10g數據庫的角色和用戶創建及權限設置
1、用命令方式在此數據庫下創建一個以你的姓名縮寫為名稱的表空間。
2、在剛才創建好的表空間中創建一個以你的姓名縮寫為名稱的用戶,密碼為你的姓名縮寫加學號。
3、把對SCOTT.DEPT表中更新DNAME的權限授予你剛創建的用戶。
4、創建一個角色SUI使其對SCOTT.EMP的表有查詢、更新、插入的權利。
5、把這個創建好的角色授予給在步驟二中創建的用戶。
6、試著把創建表的管理權限授予你剛創建的用戶。
7、四、上機內容(全部使用命令方式完成)
1、創建以你的名字命名的用戶名和以你的五個同學的名字命名的五個用戶。
2、在你的用戶名下創建USERS表。
3、在USERS表中插入三條數據。
4、創建一個以你的名字縮寫為名稱的角色。
5、把對表USERS的查詢、插入、刪除、更新的權限授予你剛創建的角色。
6、把角色授予你的五個同學。
7、把對表USERS刪除和插入權限從你五個同學那收回。
第四篇:C# System命名空間簡介
System 命名空間 類
Activator 包含特定的方法,用以在本地或從遠程創建對象類型,或獲取對現有遠程對象的引用。
AppDomain 表示應用程序域,它是一個應用程序在其中執行的獨立環境。不能繼承此類。AppDomainSetup 表示可以添加到 AppDomain 的實例的程序集綁定信息。
AppDomainUnloadedException 在嘗試訪問已卸載的應用程序域時引發的異常。ApplicationException 發生非致命應用程序錯誤時引發的異常。ArgumentException 在向方法提供的其中一個參數無效時引發的異常。
ArgumentNullException 當將空引用(在 Visual Basic 中為 Nothing)傳遞給不接受它作為有效參數的方法時引發的異常。
ArgumentOutOfRangeException 當參數值超出調用的方法所定義的允許取值范圍時引發的異常。
ArithmeticException 因算術運算、類型轉換或轉換操作中的錯誤而引發的異常。
Array 提供創建、操作、搜索和排序數組的方法,因而在公共語言運行庫中用作所有數組的基類。
ArrayTypeMismatchException 當試圖在數組中存儲類型不正確的元素時引發的異常。AssemblyLoadEventArgs 為 AssemblyLoad 事件提供數據。Attribute 自定義屬性的基類。
AttributeUsageAttribute 指定另一特性類的用法。無法繼承此類。
BadImageFormatException 當 DLL 或可執行程序的文件圖像無效時引發的異常。BitConverter 將基礎數據類型與字節數組相互轉換。Buffer 操作基元類型的數組。
CannotUnloadAppDomainException 卸載應用程序域的嘗試失敗時引發的異常。CharEnumerator 支持循環訪問 String 并讀取它的各個字符。
CLSCompliantAttribute 指示程序元素是否符合公共語言規范(CLS)。無法繼承此類。Console 表示控制臺應用程序的標準輸入流、輸出流和錯誤流。無法繼承此類。ContextBoundObject 定義所有上下文綁定類的基類。
ContextMarshalException 在嘗試將對象封送過上下文邊界失敗時引發的異常。ContextStaticAttribute 指示靜態字段的值是特定上下文的唯一值。Convert 將一個基本數據類型轉換為另一個基本數據類型。DBNull 表示空值。Delegate 表示委托,委托是一種數據結構,它引用靜態方法或引用類實例及該類的實例方法。DivideByZeroException 試圖用零除整數值或十進制數值時引發的異常。
DllNotFoundException 當未找到在 DLL 導入中指定的 DLL 時所引發的異常。
DuplicateWaitObjectException 當對象在同步對象數組中不止一次出現時引發的異常。EntryPointNotFoundException 因不存在項方法而導致加載類的嘗試失敗時引發的異常。Enum 為枚舉提供基類。
Environment 提供有關當前環境和平臺的信息以及操作它們的方法。不能繼承此類。EventArgs EventArgs 是包含事件數據的類的基類。Exception 表示在應用程序執行期間發生的錯誤。
ExecutionEngineException 當公共語言運行庫的執行引擎中發生內部錯誤時引發的異常。無法繼承此類。
FieldAccessException 當試圖非法訪問類中的私有字段或受保護字段時引發的異常。FlagsAttribute 指示可以將枚舉作為位域(即一組標志)處理。
FormatException 當參數格式不符合調用的方法的參數規范時引發的異常。GC 控制系統垃圾回收器(一種自動回收未使用內存的服務)。
IndexOutOfRangeException 試圖訪問索引超出數組界限的數組元素時引發的異常。無法繼承此類。
InvalidCastException 因無效類型轉換或顯式轉換引發的異常。
InvalidOperationException 當方法調用對于對象的當前狀態無效時引發的異常。
InvalidProgramException 當程序包含無效 Microsoft 中間語言(MSIL)或元數據時將引發的異常。通常這表示編譯器中出現錯誤。
LoaderOptimizationAttribute 用于為可執行應用程序的主方法設置默認的加載程序優化策略。LocalDataStoreSlot 封裝內存槽以存儲本地數據。無法繼承此類。
MarshalByRefObject 允許在支持遠程處理的應用程序中跨應用程序域邊界訪問對象。Math 為三角函數、對數函數和其他通用數學函數提供常數和靜態方法。MemberAccessException 訪問類成員的嘗試失敗時引發的異常。
MethodAccessException非法嘗試訪問類中的私有方法或受保護的方法時引發的異常。MissingFieldException 試圖動態訪問不存在的字段時引發的異常。
MissingMemberException 試圖動態訪問不存在的類成員時引發的異常。MissingMethodException 試圖動態訪問不存在的方法時引發的異常。
MTAThreadAttribute 指示應用程序的 COM 線程模型為多線程單元(MTA)。
MulticastDelegate 表示多路廣播委托;即,其調用列表中可以擁有多個元素的委托。
MulticastNotSupportedException 當試圖合并不可合并的委托類型的兩個實例時引發的異常,除非操作數中有一個是空引用(在 Visual Basic 中為 Nothing)。無法繼承此類。NonSerializedAttribute 指示可序列化類的某個字段不應被序列化。無法繼承此類。
NotFiniteNumberException 當浮點值為正無窮大、負無窮大或非數字(NaN)時引發的異常。
NotImplementedException 在無法實現請求的方法或操作時引發的異常。NotSupportedException 當調用的方法不受支持,或試圖讀取、查找或寫入不支持調用功能的流時引發的異常。
NullReferenceException 嘗試取消引用空對象引用時引發的異常。
Object 支持.NET Framework 類層次結構中的所有類,并為派生類提供低級別服務。這是.NET Framework 中所有類的最終基類;它是類型層次結構的根。ObjectDisposedException 對已處置的對象執行操作時所引發的異常。ObsoleteAttribute 標記不再使用的程序元素。無法繼承此類。
OperatingSystem 表示有關操作系統的信息,如版本和平臺標識符。OutOfMemoryException 沒有足夠的內存繼續執行程序時引發的異常。OverflowException 在選中的上下文中所進行的算術運算、類型轉換或轉換操作導致溢出時引發的異常。
ParamArrayAttribute 指示方法在調用中將允許參數的數目可變。無法繼承此類。PlatformNotSupportedException 當功能未在特定平臺上運行時所引發的異常。
Random 表示偽隨機數生成器,一種能夠產生滿足某些隨機性統計要求的數字序列的設備。RankException 將維數錯誤的數組傳遞給方法時引發的異常。
ResolveEventArgs 為 TypeResolve、ResourceResolve 和 AssemblyResolve 事件提供數據。SerializableAttribute 指示一個類可以序列化。無法繼承此類。StackOverflowException 掛起的方法調用過多而導致執行堆棧溢出時引發的異常。無法繼承此類。
STAThreadAttribute 指示應用程序的 COM 線程模型是單線程單元(STA)。String 表示文本,即一連串 Unicode 字符。
SystemException 為 System 命名空間中的預定義異常定義基類。ThreadStaticAttribute 指示靜態字段的值對于每個線程都是唯一的。TimeZone 表示時區。Type 表示類型聲明:類類型、接口類型、數組類型、值類型和枚舉類型。
TypeInitializationException 作為由類初始值設定項引發的異常周圍的包裝引發的異常。無法繼承此類。
TypeLoadException 類型加載失敗發生時引發的異常。TypeUnloadedException 試圖訪問已卸載的類時引發的異常。
UnauthorizedAccessException 當操作系統因 I/O 錯誤或指定類型的安全錯誤而拒絕訪問時所引發的異常。
UnhandledExceptionEventArgs 為以下情況下引發的事件提供數據:存在一個不是由應用程序域處理的異常。
Uri 提供統一資源標識符(URI)的對象表示形式和對 URI 各部分的輕松訪問。
UriBuilder 為統一資源標識符(URI)提供自定義構造函數,并修改 Uri 類的 URI。UriFormatException 當檢測到無效的統一資源標識符(URI)時引發的異常。ValueType 提供值類型的基類。
Version 表示公共語言運行庫程序集的版本號。無法繼承此類。WeakReference 表示“弱引用”,即在引用對象的同時仍然允許對該對象進行垃圾回收。接口
IAppDomainSetup 表示可以添加到 AppDomain 的實例的程序集綁定信息。IAsyncResult 表示異步操作的狀態。
ICloneable 支持克隆,即用與現有實例相同的值創建類的新實例。
IComparable 定義通用的比較方法,由值類型或類實現以創建類型特定的比較方法。IConvertible 定義特定的方法,這些方法將實現引用或值類型的值轉換為具有等效值的公共語言運行庫類型。
ICustomFormatter 定義一種方法,它支持對象值的自定義(用戶定義)格式設置。IDisposable 定義一種釋放分配的非托管資源的方法。IFormatProvider 提供用于檢索控制格式化的對象的機制。IFormattable 提供將對象的值格式化為字符串表示形式的功能。IServiceProvider 定義一種檢索服務對象的機制,服務對象是為其他對象提供自定義支持的對象。
_AppDomain 表示應用程序域,它是一個應用程序在其中執行的獨立環境。結構
ArgIterator 表示變長參數列表;即采用可變數量的參數的函數的參數。Boolean 表示布爾值。
Byte 表示一個 8 位無符號整數。Char 表示一個 Unicode 字符。DateTime 表示時間上的一刻,通常以日期和當天的時間表示。Decimal 表示十進制數。
Double 表示一個雙精度浮點數字。Guid 表示全局唯一標識符(GUID)。Int16 表示 16 位有符號的整數。Int32 表示 32 位有符號的整數。Int64 表示 64 位有符號的整數。
IntPtr 用于表示指針或句柄的平臺特定類型。RuntimeArgumentHandle 引用變長參數列表。
RuntimeFieldHandle 使用內部元數據標記表示一個字段。
RuntimeMethodHandle RuntimeMethodHandle 是方法的內部元數據表示形式的句柄。RuntimeTypeHandle 表示使用內部元數據標記的類型。SByte 表示 8 位有符號整數。Single 表示一個單精度浮點數字。TimeSpan 表示一個時間間隔。
TypedReference 描述既包含指向某位置的托管指針,也包含該位置可能存儲的類型的運行時表示形式的對象。
UInt16 表示 16 位無符號整數。UInt32 表示 32 位無符號整數。UInt64 表示 64 位無符號整數。
UIntPtr 用于表示指針或句柄的平臺特定類型。
Void 指示不返回值的方法,即具有 void 返回類型的方法。委托
AssemblyLoadEventHandler 表示處理 AppDomain 的 AssemblyLoad 事件的方法。AsyncCallback 引用在異步操作完成時調用的回調方法。
CrossAppDomainDelegate 由 DoCallBack 使用,用于跨應用程序域的調用。EventHandler 表示將處理不包含事件數據的事件的方法。
ResolveEventHandler 表示處理 AppDomain 的 TypeResolve、ResourceResolve 和 AssemblyResolve 事件的方法。
UnhandledExceptionEventHandler表示將處理事件的方法,該事件由應用程序域不處理的異常引發。枚舉
AttributeTargets 指定可以對它們應用特性的應用程序元素。DayOfWeek 指定一周的某天。
Environment.SpecialFolder 指定用于檢索系統特殊文件夾的目錄路徑的枚舉常數。LoaderOptimization 一個枚舉,它與 LoaderOptimizationAttribute 類一起使用為可執行文件指定加載程序優化。
PlatformID 描述程序集所支持的平臺。TypeCode 指定對象的類型。
UriHostNameType 為 Uri.CheckHostName 方法定義主機名類型。UriPartial 為 Uri.GetLeftPart 方法定義 URI 的各部分。
第五篇:分布式文件系統命名空間解析
分布式文件系統命名空間解析
近年,微軟對其分布式文件系統(Distributed File System,DFS)做了很多改良,其中的一項技術對文件系統資源提供了統一視圖。DFS重新定向了來自UNC途徑的請求,其中一個網絡驅動映射到請求資源所在的網絡共享。這樣的結果是你可以添加文件服務器到網絡或者不用影響用戶訪問文件的方式就能強化現有的文件服務器。重定向請求到文件實際位置的UNC途徑就是DFS命名空間。本質上,DFS命名空間是為用戶呈現文件服務器資源集中化視圖的統一命名空間。一個DFS命名空間由很多部分組成。DFS根DFS命名空間本質上是分等級的,最頂端的是DFS根。在實際運用中,可以認為根和命名空間是一樣的,因為根常用來指代整個命名空間。DFS根是一個共享文件,它必須存在于NTFS卷中。DFS根鏈接到一個或多個根目標,而根目標則鏈接到一個文件服務器上的UNC共享。一個DFS根可以鏈接的根目標數量由DFS根相關的命名空間類型決定。DFS命名空間有兩個類型:獨立命名空間和基于域的命名空間。獨立命名空間存儲他們在主機服務器注冊表中的配置信息。基于域的命名空間存儲在活動目錄數據庫中的信息。這個區別影響連接到DFS根的根目標數量。獨立DFS根只能包含一個單一根目標,而基于域的DFS根只包含通過多個服務器分離的多個根目標。下面的圖1展示了一個基于域的DFS根。很明顯這是基于域的,因為這個根的名字(//lab.com/namespace)反映了域的名字。中心方格顯示兩個UNC途徑,并且兩個途徑都像根目標一樣鏈接到DFS根。圖1:DFS根連接到一個或多個根目標DFS命名空間里的文件或鏈接在分級中的下一個元素是文件或鏈接(正如它有時候所指的)。在DFS命名空間中的每個文件都映射到鏈接目標,正如DFS根映射到根目標。鏈接目標指向一個映射到物理文件夾的UNC共享。在圖2 中,三個文件(文件
1、文件2和文件3)都被定義在DFS根下(注意,我已經選了文件1)。控制臺的中央窗口列出了映射到文件的鏈接目標。圖2:每個文件都映射到鏈接目標如你所見,這個鏈接目標不過是一個映射到共享文件的UNC途徑。另外要注意,在控制臺的中央窗口中,為鏈接目標展示了各種各樣的信息,包括類型、途徑和提交狀態。由于一個文件可以和不同服務器上的多個鏈接目標連接,所以提交狀態存在。這樣做了之后,你可以為鏈接目標創建一個復制組,且復制組會保持多種文件內容與其它文件之間的同步。圖3展示的就是一個有多個鏈接目標的文件。圖3:多個鏈接目標兩個鏈接目標的提交狀態都是有效的(Enabled)。這意味著DFS可以向任意一個目標指定資源請求。因此,如果一個文件服務器必須離線維修,這個服務器的提交狀態就變成無效,而DFS會停止向該服務器發送請求,直到提交狀態再次變為有效。NTFS級別的DFS命名空間上述因素組成了DFS命名空間。在圖4中,你可以看到NTFS級別的命名空間是什么樣子的。圖4:驅動C盤上的DFS內容注意名為Dfsroots的文件,它下面的那個文件就叫Namespace(命名空間)。當我創建根時DFS自動創建這些文件。Namespace文件實際上是共享的,但是文件系統隱藏了該共享。最后要注意,在命名空間下面有到文件
1、文件2和文件3的快捷鍵.這些都是在DFS管理控制臺中指定的目標文件。在圖的底部是這三個文件夾的另一個列表,它實際上是在驅動C盤上的共享文件。我剛剛提到的快捷鍵映射到這些共享文件夾。