我有一个在IIS7上构建和测试的WCF Web服务应用程序.关于身份验证,我想为访问Web服务中的操作的消费者实现sql server托管的用户ID和密码身份验证.但是我被告知我的公司政策要求我将SAML实施到我的网络服务中.这意味着任何访问我的Web服务操作的客户端都需要使用SAML 2.0进行身份验证.我不熟悉SAML,但想知道并开始如何在我的网络服务中实现它.我一直听到两个术语 - 服务提供商和身份提供商,根据网络上的定义,我假设服务提供商是我的网络服务.身份提供程序是用户进行身份验证的位置,身份提供程序向我的Web服务提供断言,然后让客户端访问操作.我理解这个理论但不确定如何投入实际实施.访问我的Web服务的客户端不是内部的,即它们是外部的(外部网客户端),因此在这种情况下,身份提供者将是什么以及如何将代码添加到我的Web服务中以使其成为服务提供者?
我希望你理解我的困境,任何人都可以解释我需要采取的方法,任何帮助我完成网络服务的示例或教程都非常感谢.
我有一个存储在“字符串”变量中的自定义标头,我需要用“字符串”类型变量中的标头替换来自我的 WCF 客户端的传出 SOAP 请求的标头。根据研究,我发现实现MessageHeaders.WriteHeaderContents可以工作,但此方法仅接受XmlDictionaryWriter或XmlWriter输入作为输入。我有一个字符串输入。我如何在 C# 中编码..
我收到一个错误:
"使用未分配的局部变量'PostData'"
在方法中编译以下语句时.我的意图是获取包含XML SOAP标头的"字符串"值并将其转换为XMLDictionaryWriter对象.请参阅下面的代码:
Stream PostData;
byte[] buffer = Encoding.ASCII.GetBytes(x509.CreateX509SoapEnvelope());
PostData.Write(buffer, 0, buffer.Length); // error here
XmlDictionaryWriter xmlwriter = XmlDictionaryWriter.CreateTextWriter(PostData, Encoding.ASCII);
request.Headers.WriteHeaderContents(0,xmlwriter);
Run Code Online (Sandbox Code Playgroud)
仅供参考,输出x509.CreateX509SoapEnvelope()是一个字符串,我测试了那部分,它的工作原理.我标记了上面的代码,以显示错误发生的位置.需要帮助解决错误以及如何解决它?