当托管在IIS中时,使用HTTPS进行Webhttp绑定并使用UserNamepPasswordValidator进行身份验证

|| 我正在尝试建立一个由IIS托管的WCF服务,该服务公开一个充当生成JSON数据的REST服务的终结点,并且我想使用HTTPS。我想在UserNamePasswordValidator的帮助下自己进行用户身份验证,因为用户存储在数据库中。 目前,我正在使用webhttp绑定来实现REST功能。当我尝试启用HTTPS(将安全模式设置为“传输”)时,我的问题就开始了。我在服务器端有一个SSL证书(目前为自签名),这很好,但是我不知道如何配置绑定的传输clientCredentialType,以便将凭据传递到我的UserNamePasswordValidator实现中。 我已经在Google上搜索了很多,但似乎找不到任何好的东西。如果我理解正确,IIS会在WCF之前处理身份验证,对此没有任何关系吗?我真的希望不使用ASP.Net成员资格提供程序,但是也许这是一种方法,还是有另一种方法? 谢谢! 编辑:发现了这个。并不是我真正希望的...     
已邀请:
        您不能使用“ 0”凭证-即通过SOAP标头进行消息级身份验证,但JSON数据交换没有这样的标头。尝试在传输元素中设置“ 1”凭证(=传输级别身份验证)。从.NET 3.5开始,它应该与自定义密码验证程序一起使用。您将必须传递有效的HTTP标头,以进行基本身份验证才能成功进行身份验证。 编辑: 我没有使用IIS进行测试,因此可能会出现一些问题,因为IIS在执行自定义验证器之前会触发身份验证。在这种情况下,您将需要自定义HTTP模块进行身份验证。     
        经过大量的搜索,我发现了两个可能的解决方案。 解决使用IIS托管的RESTful WCF服务进行身份验证的建议方法似乎是使用令牌。借助OAuth的第三方实现或自己实现一些功能。但是,这将给我的nettcp端点带来一些问题,并且我可能无法在两个端点上使用相同的实现(因为我将需要对通过webhttp端点进行的调用进行一些令牌验证) Ladislav Mrnka提出的解决方案似乎也是有效的。     

要回复问题请先登录注册