对于WCF服务主机实现,我需要滚动自己的身份验证和放大器。授权程序,但我找不到有关WCF如何支持这一点的任何信息。系统应该非常直接,使用用户名,密码进行身份验证,使用角色来检查操作权限。
在WPF文档和教程中,我发现使用WinLogon,IIS登录或安全证书以及使用ASP.Net角色和安全领域的权限进行身份验证。我想要的是(伪示例):
myChannelFactory.Username = "myuser";
myChannelFactory.Password = "mypass";
myChannelFactory.CreateChannel();
和操作合同
[OperationContract(Permission = MySecurityRoles.Administrator)]
public bool Reboot();
答案 0 :(得分:1)
如何实现这一目标有很多种可能性。
您可以通过将用户名和密码传递给服务器来使用会话并在第一次通话中进行身份验证。
http://www.codeproject.com/Articles/188749/WCF-Sessions-Brief-Introduction
或者您可以(如示例代码中所示)使用现有功能并在服务器上创建自定义用户名和密码验证程序。 这个例子很不错:
http://msdn.microsoft.com/en-us/library/aa702565.aspx
然后,您可以在实际实施中检查角色。