【问题标题】:Error in Claim based wcf service - The incoming policy could not be validated基于声明的 wcf 服务中的错误 - 无法验证传入策略
【发布时间】:2013-01-22 07:57:07
【问题描述】:

我开发了基于声明的 WCF 服务和使用 wcf 服务的客户端应用程序。 但在运行客户端应用程序时会引发错误 - “无法验证传入策略。有关更多信息,请参阅事件日志”

这是事件日志的详细信息:-

Incoming policy failed validation.  No valid claim elements were found in the policy XML.

Additional Information:
   at System.Environment.get_StackTrace()
   at Microsoft.InfoCards.Diagnostics.InfoCardTrace.BuildMessage(InfoCardBaseException ie)
   at Microsoft.InfoCards.Diagnostics.InfoCardTrace.TraceAndLogException(Exception e)
   at Microsoft.InfoCards.Diagnostics.InfoCardTrace.ThrowHelperError(Exception e)
   at Microsoft.InfoCards.InfoCardPolicy.Validate()
   at Microsoft.InfoCards.Request.PreProcessRequest()
   at Microsoft.InfoCards.ClientUIRequest.PreProcessRequest()
   at Microsoft.InfoCards.Request.DoProcessRequest(String& extendedMessage)
   at Microsoft.InfoCards.RequestFactory.ProcessNewRequest(Int32 parentRequestHandle, IntPtr rpcHandle, IntPtr inArgs, IntPtr& outArgs)

我经历了许多与此相关的 SO 问题,但没有任何帮助。

这是 wcf 服务端的配置:- (Click here to view image)

这是客户端配置:- (Click here to view image)

这是我尝试调用服务的方式:-

谁能告诉我我在这里做错了什么。可能是我没有将 STS 收到的令牌传递给 WCF 服务。或者可能是别的东西。

【问题讨论】:

    标签: .net wcf azure claims-based-identity


    【解决方案1】:

    您需要在 ChannelFactory 中关闭 CardSpace:

    _clientChannel = new ChannelFactory<IService>("WS2007FederationHttpBinding_IService");
    _clientChannel.ConfigureChannelFactory();
    _clientChannel.Credentials.SupportInteractive = false;
    

    SupportInteractive 将关闭 CardSpace。

    如果仍然出现错误,请使用 try catch 块包装对服务的调用以捕获异常。看看是什么错误。

    另外,打开 WCF 跟踪以查看 WCF 端是否发生错误。要打开 WCF 跟踪: http://stack247.wordpress.com/2013/05/23/wcf-tracing-and-diagnostic/

    【讨论】:

      猜你喜欢
      • 2011-02-07
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 2021-08-17
      • 2011-12-25
      • 1970-01-01
      • 2013-10-24
      相关资源
      最近更新 更多