如何从操作实现中获取有关WCF服务客户端的信息?
我特别需要获取用于调用服务方法的客户端证书。这是针对不同的客户做出不同的反应。
I especially need to get client's certificate used to call service's method. This is to react differently for different clients.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在您的操作代码中,您可以检查以下内容:
或者
但我不确定您是否可以从中访问实际的客户端证书。
ServiceSecurityContext.Current.PrimaryIdentity
将包含当前调用者的IIdentity
- 如果它为 NULL,则您正在处理匿名调用。否则,PrimaryIdentity 将是几种可能的身份类型之一,具体取决于调用用户的身份验证方式 - 它可以是 Windows 身份,也可以是其他身份 - 取决于您的场景。请参阅此博文有关 X.509 和 WCF 的更多信息。
In your operation code, you can examine things like:
or
but I'm not sure if you can access the actual client certificate from those.
The
ServiceSecurityContext.Current.PrimaryIdentity
will contain anIIdentity
for the current caller - if it's NULL, then you're dealing with an anonymous call. Otherwise, the PrimaryIdentity will be one of several possible identity types, depending on how the calling user was authenticated - it could be a Windows identity, or something else - depending on your scenario.See this blog post for a few more tidbits of information on X.509 and WCF.