最近遇到wcf的身份验证问题,WCF服务是宿主于IIS中的,之前是使用的基本操作系统的“身份验证”来验证用户。但是现有客户不提供windows账户给我们,所以我们只能使用自定义用户名密码的方式,研究了两天发现效果没有与windows集成的效果好,也许是自己未搞清楚。下面我描述下的疑惑:
1、使用自定义用户密码方式做身份验证的方式主要派生System.IdentityModel.Selectors.UserNamePasswordValidator以实现验证,有无其他方法,因为在实验时发现无法断点调试?
2、因为客户不提供windows账号给我们,所以WCF站点开启了匿名用户验证,这样wcf的元数据就公开了,之前使用基本身份验证的时候外界访问wcf时会要求输入用户密码,这样在不知道用户密码的前提下无法获得元数据。所以我考虑将元数据请求置为false,以使外界无法获取,配置如下:<serviceMetadata httpGetEnabled="false" httpsGetEnabled="false"/>。这样做不知道是否真能实现我的目的 ?
3、安全主要是靠SSL加密,这种方法貌似只保证点到点安全,但是消息加密需要客户端证书,不知道这点我是否理解有误?