第一篇:使用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盘上的共享文件。我刚刚提到的快捷键映射到这些共享文件夹。