Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用.Net、PHP和Delphi客户端进行WCF用户名验证_Wcf_Authentication - Fatal编程技术网

使用.Net、PHP和Delphi客户端进行WCF用户名验证

使用.Net、PHP和Delphi客户端进行WCF用户名验证,wcf,authentication,Wcf,Authentication,我有一个托管在IIS中的WCF服务,我想使用用户名身份验证。我的客户是.Net、PHP和Delphi 我不想使用SSL或任何认证 我该怎么做呢?根据您的评论,如果您愿意在服务器端提供证书,那么您想做的事情非常简单。WCF实现的WS-Security标准应可供实现类似web服务接口的任何客户端使用 对于基本的、简单的用户名身份验证,您只需要设置属性配置选项,例如: 如果您不想使用Windows用户名(您的问题有点暗示不是每个人都有Windows用户名和/或密码),您可以提供一个自定义用户名提供程

我有一个托管在IIS中的WCF服务,我想使用用户名身份验证。我的客户是.Net、PHP和Delphi

我不想使用SSL或任何认证


我该怎么做呢?

根据您的评论,如果您愿意在服务器端提供证书,那么您想做的事情非常简单。WCF实现的WS-Security标准应可供实现类似web服务接口的任何客户端使用

对于基本的、简单的用户名身份验证,您只需要设置属性配置选项,例如:

如果您不想使用Windows用户名(您的问题有点暗示不是每个人都有Windows用户名和/或密码),您可以提供一个自定义用户名提供程序来执行您想要的任何操作。设置如下所示的服务行为配置:

<serviceCredentials>
  <serviceCertificate findValue="localhost" storeLocation="LocalMachine"
    x509FindType="FindBySubjectName" />
  <userNameAuthentication userNamePasswordValidationMode="Custom" 
    customUserNamePasswordValidatorType="MyService.Auth, MyService" />
</serviceCredentials>

如果验证失败,您应该从该方法中抛出某种类型的
FaultException
;否则,WCF将假定组合成功。

dupe of?谢谢您的评论。我可以通过认证来做到这一点吗?是的,如果您愿意提供服务器端证书,您几乎可以做任何您想做的事情。我会发布一个更详细的答案。谢谢。我的服务托管在internet上,无法设置任何内容。有没有一种不用安装x509认证的方法?
public class Auth : UserNamePasswordValidator
{
    public override void Validate(string userName, string password)
    {
    }
}