В вашем коде операции вы можете исследовать такие вещи, как:
OperationContext.Current
или
ServiceSecurityContext.Current
но я не уверен, что вы можете получить доступ к действующему клиентскому сертификату из них.
ServiceSecurityContext.Current.PrimaryIdentity
будет содержать IIdentity
для текущего абонента - если он равен NULL, то вы имеете дело с анонимным вызовом. В противном случае PrimaryIdentity будет одним из нескольких возможных типов идентификационных данных, в зависимости от того, как был аутентифицирован вызывающий пользователь - это может быть идентификация Windows или что-то еще - в зависимости от вашего сценария.
См. Это сообщение в блоге , где приведено еще несколько подробностей о X.509 и WCF.