获取向WCF服务发出请求的当前用户的WindowsAccount

时间:2011-10-07 12:29:40

标签: .net wcf authentication

您好,

我有一个使用WindowsAuthentication和常规UserName / Password身份验证的WCF服务(会话)。

现在,我需要在客户端上获取已将请求发送到WCF服务的当前用户。

我知道这可以在IAuthorizationPolicy中完成,但我不确定如何在web方法中执行此操作?

我试过这个:

WindowsIdentity.GetCurrent();

但这只会返回运行WCF服务的当前用户(似乎),而不是返回当前请求的客户端用户?

请求建议

BestRegards

2 个答案:

答案 0 :(得分:1)

ServiceSecurityContext.Current.WindowsIdentity应该可以解决问题。

答案 1 :(得分:1)

发送请求的用户的身份可通过AuthorizationContext在WCF中获取,

AuthorizationContext context =     ServiceSecurityContext.Current.AuthorizationContext

适用于任何类型的身份验证方法,无论您使用的是Windows还是用户名/密码。

默认情况下,WCF不会在正在运行的线程中设置标识,因此您无法通过WindowsIdentity获取它。

此致 巴勃罗。

相关问题