我是WCF的新手,我正在尝试设置服务,并收到了两个不同的建议:
我可以看到的区别在于方法二,每次调用服务时都会验证用户凭据,而且我不必在服务器上保持会话状态,我喜欢.
我是否误解了这些概念,两者解决了不同的问题?
有人可以帮我理解这两个以及何时使用?
ASP.NET内置成员资格和角色提供程序只为您提供SQL Server数据库(和管理GUI)中的现成表和存储过程,以处理创建用户,定义角色,将用户分配给角色等等.
他们为WCF提供了一个预定义的成员身份验证提供程序 - 所以基本上,您只是免费获得或多或少的所有内容,而不必担心创建用户,管理密码等所有细节问题.
首先,我肯定会使用这个选项 - 更容易,更快速地启动和运行.
自定义身份验证验证程序更像是一个高级主题,如果您具有超出ASP.NET成员资格提供程序的特定和专门需求,您可能希望查看该主题.它为您提供更多功能 - 您基本上可以从WCF获取用户名和密码,并且由您决定是否对该呼叫者进行身份验证 - 但它确实也是相当多的工作.
身份验证的方式没有区别--WCF的最佳做法是使用每次呼叫服务,在这种情况下,无论您使用何种身份验证机制,您都将始终基于每个呼叫对呼叫者进行身份验证.在后台使用(Active Directory,ASP.NET Membership,custom).
所以我绝对建议使用ASP.NET内置的成员资格和角色提供程序,只要这些就足够了 - 而且我很确定它们会很长时间没问题!