WCF端点确定调用哪个Auth方法

时间:2011-01-18 15:09:30

标签: wcf authentication

从WCF服务内部可以确定调用服务的身份验证方法吗?

例如;

if (Forms Authentication) {
  //do something
}

if (WindowsAuthentication) {
  //do something else
}

1 个答案:

答案 0 :(得分:0)

您可以检查WCF服务类中ServiceSecurityContext上的OperationContext,然后可以确定用户的身份验证方式(如果有的话)。

ServiceSecurityContext security = 
      OperationContext.Current.ServiceSecurityContext;

现在您可能在安全上下文中有其中一个:

  • PrimaryIdentity。包含声明集中的身份声明,作为传统的IIdentity参考。
  • 的WindowsIdentity。如果它是WindowsIdentity,则包含声明集中的标识声明。

如果您有其他身份验证机制(如证书或联合身份验证),则PrimaryIdentity将包含该机制的合适身份。

有关此主题的详尽讨论,请参阅Fundamentals of WCF Security(第3页的链接)。