在服务器端针对 WCF 调用方的 ActiveDirectory 组进行验证
validate against an ActiveDirectory group of WCF caller in the server side
我有一个 WCF 服务,托管在 WindowService 中,使用 nettcpbinding,如果发件人属于特定的 AD 组,我想在其中执行 C# 代码检查。
可能吗?如果可以,怎么做?
假设 WCF 客户端和服务器在同一个域中,您可以这样做:
在客户端,您允许使用 windows 身份验证客户端:
using System.Security.Principal;
....
ServiceReference.ServiceClient client = new ServiceReference.ServiceClient();
client.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Identification;
在服务器端,您检索调用者 windows 身份并测试它是否属于以下组:
WindowsIdentity callerWindowsIdentity = ServiceSecurityContext.Current.WindowsIdentity;
WindowsPrincipal windowsPrincipal = new WindowsPrincipal(callerWindowsIdentity);
var isInRole = windowsPrincipal.IsInRole("Users");
我有一个 WCF 服务,托管在 WindowService 中,使用 nettcpbinding,如果发件人属于特定的 AD 组,我想在其中执行 C# 代码检查。
可能吗?如果可以,怎么做?
假设 WCF 客户端和服务器在同一个域中,您可以这样做:
在客户端,您允许使用 windows 身份验证客户端:
using System.Security.Principal;
....
ServiceReference.ServiceClient client = new ServiceReference.ServiceClient();
client.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Identification;
在服务器端,您检索调用者 windows 身份并测试它是否属于以下组:
WindowsIdentity callerWindowsIdentity = ServiceSecurityContext.Current.WindowsIdentity;
WindowsPrincipal windowsPrincipal = new WindowsPrincipal(callerWindowsIdentity);
var isInRole = windowsPrincipal.IsInRole("Users");