来自 WCF 请求的 IPrincipal

Posted

技术标签:

【中文标题】来自 WCF 请求的 IPrincipal【英文标题】:IPrincipal from WCF request 【发布时间】:2010-11-02 20:11:33 【问题描述】:

当请求者使用 WCF 服务时,我可以获取请求者 windows IPrincipal 吗?

【问题讨论】:

也许吧。确实需要更多关于您如何访问服务的信息。 好吧,我正在使用 WCF 使用 Windows 身份验证,我将特定用户配置到应用程序池,因此它将具有数据库凭据。需要哪些更多细节?谢谢 您使用什么绑定/协议?客户端和服务器是否在同一个网段/Active Directory域? 【参考方案1】:

使用此代码,您可以检查 WCF 服务中的当前安全上下文。

如果用户已通过身份验证,并且 WindowsPrincipal 不为空,那么您使用的是 Windows 安全模型 - 您可以访问所有相关信息:

ServiceSecurityContext current = ServiceSecurityContext.Current;

if (!current.IsAnonymous && current.WindowsIdentity != null)

    string userName = current.WindowsIdentity.Name;

【讨论】:

非常感谢!我无法以某种方式将此标记为答案。不管怎样,谢谢你。塔米尔

以上是关于来自 WCF 请求的 IPrincipal的主要内容,如果未能解决你的问题,请参考以下文章

通过邮递员将帖子请求接收到 wcf

如何从 WCF REST Web 服务中的改造中获取来自@Part List<MultipartBody.Part> 发布请求的文件?

来自 .net WCF 服务的 405 响应错误

WCF - 获取原始请求/回复和操作名称

请求-响应与双工 WCF 消息交换模式

使用ssl和客户端证书的Wcf:请求svc succes wcf调用返回403.16