Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 从启用单一登录的ASP.NET网站后端请求ADFS安全令牌_Wcf_Single Sign On_Wif_Claims Based Identity_Adfs - Fatal编程技术网

Wcf 从启用单一登录的ASP.NET网站后端请求ADFS安全令牌

Wcf 从启用单一登录的ASP.NET网站后端请求ADFS安全令牌,wcf,single-sign-on,wif,claims-based-identity,adfs,Wcf,Single Sign On,Wif,Claims Based Identity,Adfs,我有一个启用单一登录的ASP.NET网站,它使用ADFS进行身份验证。登录时,用户会被重定向到ADFS登录页面,然后我的应用程序会返回FedAuth cookies,并且不会存储任何用户密码 我需要做的是从网站后端联系第三方服务(即SharePoint),该服务被配置为使用相同的ADFS服务器进行身份验证。我已经了解到,我应该能够通过使用一些WIF(实际上是WCF)调用获取另一个安全令牌来实现这一点,例如这里描述的调用 我的问题是,我不知道如何使用单点登录cookie中隐式提供的信息为此类呼叫提

我有一个启用单一登录的ASP.NET网站,它使用ADFS进行身份验证。登录时,用户会被重定向到ADFS登录页面,然后我的应用程序会返回FedAuth cookies,并且不会存储任何用户密码

我需要做的是从网站后端联系第三方服务(即SharePoint),该服务被配置为使用相同的ADFS服务器进行身份验证。我已经了解到,我应该能够通过使用一些WIF(实际上是WCF)调用获取另一个安全令牌来实现这一点,例如这里描述的调用

我的问题是,我不知道如何使用单点登录cookie中隐式提供的信息为此类呼叫提供身份验证。我没有明确的凭据,也没有Windows身份验证

我尝试使用的代码如下:

WSTrust13ContractClient trustClient = new WSTrust13ContractClient(binding, address);

trustClient.ClientCredentials.Windows.AllowNtlm = true;
trustClient.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;
trustClient.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;

System.ServiceModel.Channels.Message response =
        trustClient.EndIssue(trustClient.BeginIssue(
            System.ServiceModel.Channels.Message.CreateMessage(
            MessageVersion.Default, WSTrust13Constants.Actions.Issue,
            new RequestBodyWriter(trustSerializer, rst)), null, null));

“HTTP请求被客户端身份验证方案‘协商’禁止”消息失败。

您提到的错误也在您在问题中链接到的博客文章中描述。你做了他们建议的变通方法了吗?问题是,变通方法适用于IIS,但就我而言,ADFS 3.0不再基于IIS,所以我甚至不知道该怎么做