我正在编写一个WCF服务,允许访问基于AD用户组的操作。如果登录的用户属于groupA
,请允许他执行operationA
,但不允许operationB
,依此类推。为此,我必须将NetworkCredentials
传递给服务,如
factory.Credentials.Windows.AllowedImpersonationLevel =
TokenImpersonationLevel.Identification;
factory.Credentials.Windows.AllowNtlm = true;
factory.Credentials.Windows.ClientCredential.username = "username";
factory.Credentials.Windows.ClientCredential.password = "pwd";
factory.Credentials.Windows.ClientCredential.domain = "mycompany.com";
我希望用户无需输入他的凭据来调用服务操作。它应该来自Thread.CurrentPrincipal
。任何人都可以帮助我解决如何传递网络凭据的问题。
答案 0 :(得分:2)
为什么不直接将安全模式指定为绑定的“Windows集成”安全性?这是net.Tcp和wsHttp绑定的默认设置 - 当前登录用户的Windows凭据将通过网络发送到服务器。
无需再次明确设置这些凭据。