SPN(Service Principal name)服务器主体名称。
SPN 是服务在使用 Kerberos 身份验证的网络上的唯一标识符。它由服务类、主机名和端口组成。在使用 Kerberos 身份验证的网络中,必须在内置计算机帐户(如 NetworkService 或 LocalSystem)或用户帐户下为服务器注册 SPN。对于内置帐户,SPN 将自动进行注册。但是,如果在域用户帐户下运行服务,则必须为要使用的帐户手动注册 SPN。
这是我抄自百度百科:http://baike.baidu.com/view/707988.htm。因为我在网上搜索了之后,只有百度的这段简单明了用中文几句话就把这个概念解释清楚了,特此存档。
这几个组是域环境下的,他们的作用范围不同:
1、通用组
通用组的成员可包括域树或林中任何域的其他组和账户,而且可在该域树或林中的任何域中指派权限;当域功能级别设置为Windows2000混合模式时,不能创建具有通用组的安全组。
2、全局组
全局组的成员可包括其所在域中的其他组和账户,而且可在林中的任何域中指派权限;
3、本地域组
本地域组的成员可包括Windows Server2003、Windows 2000或WindowsNT域中的其他组和账户,而且只能在其所在域内指派权限。
我在使用CredentialCache的Add方法的时候,不知道其他的几个authType怎么来写。在Google的帮助下,从微软的Support网站找到一些提示:
"Basic":基本身份认证(明文传送用户名和密码)
"Digest":Windows域服务器的摘要式身份认证
"Negotiate":Windows集成身份认证(至少在这种认证方式下可用)
希望对调用有身份认证要求的WebService的朋友有帮助!
问微软工程师的第二个问题“额外的域控制器是否都可以升级为GC”。
是的,所有域控制器都可以提升为GC。操作步骤如下:
1. 在第一台DC上打开“Active Directory Sites and Services”
2. 展开“Sites\Default-First-Site-Name\Servers\<第二台DC的名字>\NTDS Settings”
3. 右键单击NTDS Settings,选择Properties
4. 在General页面中,将“Global Catalog”前的勾勾上,点击OK。
5. 重新启动第二台DC。
昨天问微软的工程师一个问题“额外域控制器上的DNS如何配置?”,答案如下:
1. 在添加/删除程序->添加/删除Windows组件中添加DNS服务。
2. 在第二台DNS服务器上,打开DNS服务器管理控制台。
3. 展开正向搜索区域,右键点击正向搜索区域,选择新建区域,单击下一步。
4. 选择“在Active Directory中存储区域”,选择创建“主要区域”,单击下一步。注:只有选择“在Active Directory中存储区域”,才能在有主要DNS区域的DNS域中创建第二台DNS服务器。
5. 选择DNS的复制范围,建议选择“至Active Directory林中的所有DNS服务器”,单击下一步。 注:在只有一个域的环境下,至林中与至域中所有DNS服务器是一样的。
6. 输入域DNS名称,单击下一步。
7. 选择“允许安全动态更新”,单击下一步,点击完成,第二台DNS服务器配置完成。
8. 返回DNS服务器控制台,展开正向搜索区域,右键点击新建区域,选择属性,单击区域复制,勾选“允许区域复制”,选择“到所有服务器”,单击确定。这样,DNS服务器之间的DNS数据将会同步更新。
这几天一直写一个在SPS当中修改AD用户密码的Webpart。我向鞠海洋大哥要来了他写的代码,仔细研究了,自己也动手写了一个。但是包括鞠大哥写的和我写的都不用正确运行,总是捕捉到异常信息。不同的是,鞠大哥的代码可以显示用户的displayName属性,而我的显示不了。
昨天就想起来在ASP.NET中测试一下吧,毕竟ASP.NET当中条是要容易些。我有在写Webpart之前,先用ASP.NET预演的习惯。但是却发现ASP.NET当中不仅可以显示displayName属性,连密码也可以修改了。于是又仔细看了鞠大哥的代码,发现他并不是从AD用户的displayName属性显示的用户名称,而是通过SPS的CurrentUser对象来获取的用户名称。这样在仔细测试后可以发现,在SPS的Webpart当中是没有办法读取AD内数据的,即使将SPS网站的安全信任级别提高到了“Full”也是不行的。
详细的错误信息:
System.Runtime.InteropServices.COMException (0x80070035): 找不到网络路径。 at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) at System.DirectoryServices.DirectoryEntry.Bind() at System.DirectoryServices.DirectoryEntry.get_NativeObject() at System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args) at nChi.WebParts.Utility.UserCtrl.chgPwd()
以此猜测这可能是SPS把有关的COM调用给屏蔽到了…
近期评论