我已经使用WSDualHttpBinding创建了一个WCF服务。未指定安全模式,因此将其设置为WSDualHttpSecurityMode.Message。带有邮件安全模式的WCF服务中的匿名函数调用
它工作正常,从客户端连接到具有证书的服务器,这是允许的。
当我使用凭据连接到服务器时,这是不被允许的,我得到一个SecurityNegotiationException。
这就是所有好的,我现在想要做的是,服务中有一个功能,允许匿名调用。
所以我想尝试调用该服务,并且当我的凭据不被允许时,我想调用一个名为GetDescription()的函数,该函数将返回该服务的描述。
原因是,我们正在托管一些服务,并通过广播发现它们。如果有服务,客户端不被允许,我想从服务中看到一些细节,通过重新配置服务来解决这个问题。
目前只有基于Windows的身份验证服务,但将来还会有一些服务使用自定义身份验证。因此,我首先想尝试与基于Windows的身份验证进行连接,如果此操作失败,我想要求用户输入凭据并希望尝试使用这些凭据连接到该服务。 当时,当我要求用户输入凭证时,我想显示一些有关该服务的详细信息,以便用户可以更容易地识别服务,因为在同一台计算机上将运行多个服务。 – christian
我想这将需要完全取代WCF认证机制。这通常通过暴露两个端点来完成 - 一个用于Windows身份验证,一个用于用户名身份验证。你试图做的主要是WCF/Web服务范围之外。 –
我认为你是对的。也许我必须提供两个wcf服务。一个安全的和一个没有安全的提供描述。 – christian