-6ren"> -这两行web.config代码有什么区别 1. 2. MyuserName 和 MyPassword 是我的 Windows 凭据。如果您将 IIS 设置为使用 Windows 凭据,则不应为“-6ren">
gpt4 book ai didi

c# - WCF 和

转载 作者:太空宇宙 更新时间:2023-11-03 17:36:57 25 4
gpt4 key购买 nike

这两行web.config代码有什么区别
1.

<identity impersonate="true" /> 

2.

<identity impersonate="true" userName="MyUserName" password="MyPassword"/>  

MyuserName 和 MyPassword 是我的 Windows 凭据。如果您将 IIS 设置为使用 Windows 凭据,则不应为“1”。传递我的 Windows 凭据,因此与“2”相同。?

当我在尝试连接到我的 WCF 服务时使用“1”并出现身份验证错误时,我的应用程序快死了。我的服务中的代码显然没有任何问题,将我的服务称为“2”的代码工作正常,并将客户端凭据传递到我的 WCF 服务。

该网站的 IIS 配置是为 windows 身份验证设置的,它运行的用户是受信任的委托(delegate)。

那么如何在不对它们进行硬编码的情况下通过我的 Windows 凭据呢?

最佳答案

您看到的是委派问题。如果你使用

<identity impersonate="true" />

那么您的 ASP.NET 页面将在登录用户的凭据下运行(假设是 Windows 身份验证)。但是,这些凭据不会传递到在您的应用程序外部进行的任何调用,例如与 SQL 的连接或与 WCF 服务的连接。您需要使用传递给 ASP.NET 的凭据,然后在调用您的 Web 服务之前使用模拟;

using (((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate())
{
WCFTestService.ServiceClient myService = new WCFTestService.ServiceClient();
Response.Write(myService.GetData(123) + "<br/>");
myService.Close();
}

有关 WCF Security Patterns and Practices 的更多详细信息网站。

关于c# - WCF 和 <identity impersonate ="true"/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1360322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com