C# 通过调用WCF的网站模拟用户
我的服务是一个netTCP Web服务,连接到它的站点是一个经过windows身份验证的模拟网站。当我尝试点击我的服务时,服务和站点在同一台服务器上,那么这是正确的。当我试图从我的开发机器或本地机器上运行的IIS实例中点击该服务时,它会工作。它唯一不起作用的时候是当我的网站位于该网站的另一台服务器上时。查看WCF实用程序的输出,我们发现一个匿名用户正试图访问我们的服务。但令人疯狂的是,我的用户名显示在服务的右上角C# 通过调用WCF的网站模拟用户,c#,wcf,security,asp.net-mvc-2,impersonation,C#,Wcf,Security,Asp.net Mvc 2,Impersonation,我的服务是一个netTCP Web服务,连接到它的站点是一个经过windows身份验证的模拟网站。当我尝试点击我的服务时,服务和站点在同一台服务器上,那么这是正确的。当我试图从我的开发机器或本地机器上运行的IIS实例中点击该服务时,它会工作。它唯一不起作用的时候是当我的网站位于该网站的另一台服务器上时。查看WCF实用程序的输出,我们发现一个匿名用户正试图访问我们的服务。但令人疯狂的是,我的用户名显示在服务的右上角 Page.User.Identity.Name 我想我想知道我是否正确地模拟了客
Page.User.Identity.Name
我想我想知道我是否正确地模拟了客户。我怀疑它在这些实例上有效,因为当两个应用程序池都在本地计算机上运行时,不需要特定的握手。在我的本地机器上也是如此(不知道为什么,但我想当我从登录机器转到服务器时,可能会有某种隐含的安全性)。
下面是我如何模拟用户
client2.ChannelFactory.Credentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
我想我的IIS 7 windows 2008安装正确。除了为站点启用windows身份验证外,我还为站点启用了aspnet模拟。我对该服务禁用了除windows身份验证以外的所有功能。我将应用程序池设置为特定id。我不确定我缺少什么。我还没有掌握wcf服务,所以我认为我在这方面的知识有限。如果你们有任何想法或建议,请告诉我。看来你们有以下问题。我认为这与机器B不信任机器A传递其凭据有关。这表现在不同的方面 您需要通过执行以下操作(更多)在Active Directory中对kerberos凭据委派进行更改,从一台受信任的机器更改为信任机器
- 单击开始,单击管理工具,然后单击Active Directory用户和计算机
- 展开“域”,然后展开“计算机”文件夹
- 在右侧窗格中,右键单击Web服务器的计算机名,选择“属性”,然后单击“委派”选项卡
- 单击以选择“信任此计算机以委派给任何服务”(仅限Kerberos)
- 单击“确定”