1
3
当使用模拟并访问不同主机上的资源时,会发生委派(外行称之为“两个跃点”)。由于默认情况下会限制委派,除非显式启用了受约束的委派,否则身份验证将失败。 但是,等等,您说,我使用SQL身份验证,而SQL身份验证不是NTLM/Kerberos的“资源”。是的,我说,但你也用 命名管道 命名管道 是 一个NTLM/Kerberos资源,因此委派 做 发生。
见
How to: Configure Client Protocols
以确保SQL Server正在侦听TCP和
Configuring Client Network Protocols
有关如何强制客户端选择特定协议(即不要先尝试命名管道)。您也可以通过简单地附加
|
2
0
您是否在Web服务本身中使用模拟? Web服务中的模拟操作在不同于IIS的层上进行。要从客户端获取到Web服务,您可以让identity=impersonate off并从serviceSecurityContext获取用户令牌,即使匿名模式为on。 若要在Web服务中模拟该令牌,请从ServiceSecurityContext获取WindowsCredential,并在using语句中调用credential.impersonate()方法,将到数据库的连接置于using块中。
此外,如果您需要流程中的另一个分支(即后端服务在另一台服务器上),则需要使用委派来传播凭证。您也可以声明地这样做。有关详细信息,请参阅本文: http://msdn.microsoft.com/en-us/library/ms730088.aspx |
3
0
因为它在SQL Server位于同一个框中时工作,所以可以连接到事务。 可能是它试图使用msdtc,而被模拟的用户缺乏某些权限。 您可以尝试的另一件事是使用您试图模拟的用户登录到Web服务器,然后查看是否可以连接到SQL Server。 |
4
0
如果您的问题是委派,请参阅本文以启用受约束的委派。 http://msdn.microsoft.com/en-us/library/ms730088.aspx 转到最底层了解如何为受约束的委托设置帐户。我知道这是一篇WCF文章,但是设置帐户以使用委派的过程应该是相同的。 更多细节,请点击这里。 http://technet.microsoft.com/en-us/library/cc739587(WS.10).aspx 或者,让您的SQL服务器启用TCP访问并以这种方式访问它,如Remus所解释的。 |
user755806 · 从Rest服务返回JSON响应? 6 年前 |