您好,
我有一个使用WindowsAuthentication和常规UserName / Password身份验证的WCF服务(会话)。
现在,我需要在客户端上获取已将请求发送到WCF服务的当前用户。
我知道这可以在IAuthorizationPolicy中完成,但我不确定如何在web方法中执行此操作?
我试过这个:
WindowsIdentity.GetCurrent();
但这只会返回运行WCF服务的当前用户(似乎),而不是返回当前请求的客户端用户?
请求建议
BestRegards
答案 0 :(得分:1)
ServiceSecurityContext.Current.WindowsIdentity
应该可以解决问题。
答案 1 :(得分:1)
发送请求的用户的身份可通过AuthorizationContext在WCF中获取,
AuthorizationContext context = ServiceSecurityContext.Current.AuthorizationContext
适用于任何类型的身份验证方法,无论您使用的是Windows还是用户名/密码。
默认情况下,WCF不会在正在运行的线程中设置标识,因此您无法通过WindowsIdentity获取它。
此致 巴勃罗。