从WCF方法OperationContext中提取Kerberos票证

时间:2015-05-21 23:36:14

标签: wcf kerberos extraction

我使用Kerberos身份验证启用了支持WCF REST的Web服务。 OperationContext包含我期望从ADFS接收的所有内容。但是,如何提取实际的Kerberos票证?我需要这张票来生成KerberosReceiverSecurityToken,以便我可以与ADFS通信 使用WireShark我能够在HTTP级别看到票证。我是否需要实现自定义HTTP处理程序来提取故障单?

感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

foreach(var header in HttpContext.Current.Request.Headers)
{
  string headerVal = HttpContext.Current.Request.Headers[header];
  if(headerVal.StartsWith("Negotiate"))
  {
    string parts[] = headerValStr.Split(' ');
    string kerberosStr = parts[1];

    //if a header token begins with "YII" its kerberos
    //otherwise its likely NTLM (or other)
    if(kerberosStr.StartsWith("YII"))
    {
      retVal = Convert.FromBase64String(kerberosStr);
      break;
    }
  }
}