我们有一个使用自定义STS活动联合实现保护的wcf web服务。
因此,客户必须联系STS以获取“令牌”,以便在WCF服务中调用这些方法。
我很困惑如何从服务本身拨打自助服务电话。
步骤如下
如何实施第4步?
public int GetValue(string input)
{
CallGetValue1();
return int.Parse(input);
}
public int GetValue1()
{
return int.MaxValue;
}
private void CallGetValue1()
{
var channelFactory = new ChannelFactory<IWCFService>("WCFService");
channelFactory.Credentials.SupportInteractive = false;
channelFactory.ConfigureChannelFactory();
var proxy = channelFactory.CreateChannelWithIssuedToken(GetSecurityToken());
var result = proxy.GetValue1();
}
private static SecurityToken GetSecurityToken()
{
var identity = Thread.CurrentPrincipal.Identity as IClaimsIdentity;
return identity.BootstrapToken;
}
CallGetValue1给了我一些错误@ proxy.GetValue1()
System.ServiceModel.FaultException`1 [System.ServiceModel.ExceptionDetail]:安全令牌验证器'System.ServiceModel.Security.Tokens.GenericXmlSecurityTokenAuthenticator'无法验证类型为'System.IdentityModel.Tokens.SamlSecurityToken'的令牌。 (Fault Detail等于ExceptionDetail,可能由IncludeExceptionDetailInFaults = true创建,其值为: System.IdentityModel.Tokens.SecurityTokenValidationException:安全令牌身份验证器'System.ServiceModel.Security.Tokens.GenericXmlSecurityTokenAuthenticator'无法验证类型为'System.IdentityModel.Tokens.SamlSecurityToken'的令牌。
对不起,我不知道要添加更多细节。如果您需要更多详细信息,请在评论中回复。谢谢:))