我需要一些WCF应用程序的架构方面的帮助。这将是许多服务,可用于服务于许多不同的客户,例如
有些服务需要身份验证,有些服务无需身份验证。
我需要一些有关需要身份验证的服务的建议,我想通过SSL使用用户名/密码凭据。
如何(如果可能/建议所有客户端类型)我应该在WCF中设计它吗?
答案 0 :(得分:3)
您可以(并且应该)将身份验证与服务实现分离,以便您可以单独更改这些内容。这可以通过实施(或重复使用)ServiceAuthorizationManager来实现。
关于这些的好处是它们可以在.config中定义,您可以编写整个服务的代码,而无需了解用户如何进行身份验证。
如果您需要了解有关该用户的更多信息,可以使用Thread.CurrentPrincipal。
要实施用户名/密码验证,请实施UserNamePasswordValidator。