System.Security.AccessControl
这很重要。框架现在模拟 Windows 安全描述符,允许您以编程方式读取并修改访问控制列表 (ACL),取得对象的所有权,并在安全描述符描述语言 (SDDL) 字符串和二进制安全描述符之间进行转换,等等。从 Alpha 预发布版本以来我就关注着该命名空间设计的发展,我必须要说明的是,在 Alpha 后深入其中的工作已经使其成为一种非常强大并且易于使用的附加功能。
在我打印出文件所有者时,您就已经看到这项新功能的简单示例。注意我是如何通过 System.IO.File 类来访问该文件的安全描述符的。您会发现,在框架中,安全对象已产生两种新方法:GetAccessControl 和 SetAccessControl。诸如 AutoResetEvent、Mutex 和新 Semaphore 的类表示三个这样的对象,与更明显的 File 和 Directory 类表示的对象相同。
更改服务的自由访问控制列表 (DACL) 没有直接的方法。当前只是没有服务对象的内置托管表示方法。但是在了解了访问控制基础结构的工作方法之后,我花了大约 15 分钟就创建了我对服务安全性的支持。System.Security.AccessControl 命名空间是从头开始设计的,并且始终考虑可扩展性。Kudos 这帮家伙!
对于以前曾经对 ACL 进行过编程的开发人员来说,您一定会欣赏有关代码的简单性(请参见图 1)。有关 System.Security.AccessControl 命名空间的更多信息,请参阅 2004 年 11 月号的 MSDN®Magazine 中 Mark Pustilnik 的文章,可从 Manage Access to Windows Objects with ACLs and the .NET Framework 获得。
返回页首
System.Net.Security
我最喜欢的一个讨论主题是身份验证协议,但针对它们的编程一直都是很需要技巧的。将 Kerberos 添加到应用程序通常涉及调用安全支持提供程序接口 (SSPI) 中的一些低级函数,而添加安全套接字层 (SSL) 支持则更为困难。
令人欣慰的是,现在 SSPI 的托管包装允许您使用 Kerberos 或 SSL 来实现客户端和服务器端的安全通道。Kerberos 支持由 NegotiateStream 提供给您,它在 Kerberos 和称为 NTLM 的质询-响应的旧协议间进行技术协商。客户端握手可以是同步的,也可以是异步的。下面是客户端同步安装程序的示例:
文章来源于领测软件测试网 https://www.ltesting.net/