当前位置: 首页 > 编程语言 > C#

基本身份验证与WCF分享

时间:2023-04-10 17:40:21 C#

基本身份验证与WCF我有一个包含用户名和密码的数据库,用户应该在使用该服务之前进行身份验证。目前,用户名和密码是硬编码的:classUsernameAuthentication:UserNamePasswordValidator{//////在派生类中重写时,验证指定的用户名和密码。//////要验证的用户名。要验证的密码.publicoverridevoidValidate(stringuserName,stringpassword){varok=(userName=="test")&&(password=="test");if(ok==false)thrownewAuthenticationException("用户名和密码不匹配");我的服务很简单:publicclassService1:IService1{publicintAdd(inta,intb){returna+b;}publicintSubtract(inta,intb){returna-b;我的问题是:我到底需要在web.config文件中更改什么才能让它工作?我看过一些教程,但并不真正理解所需的更改。另外,我正在尝试做的事情——在用户访问服务之前对用户进行身份验证,这是正确的方法吗?谢谢编辑:我的配置文件:错误:无法激活service1.svc。您必须在web.config中指定您将使用用户名/密码凭据并使用自定义密码验证程序。您的服务绑定应该设置一种安全类型(Transport或Message,无论哪种最适合您),并且对于这种类型的安全,您必须设置要使用的凭据(用户名和密码)。其中...代表您的服务特定的许多其他设置。请注意,只有特定类型的绑定和安全模式支持此类凭据,但MSDN具有您可能需要的所有信息。如果您没有将凭据设置为用户名和密码,则不会以这种方式对用户进行身份验证。要告诉服务使用您的密码验证器,您需要添加以下内容:.....Microsoft.ServiceModel.Samples.CalculatorService是您拥有自定义验证器的命名空间,CustomUserNameValidator是自定义验证器(在您的情况下,以下内容是UserNamePasswordValidator),service是服务的名称。否则,该服务将需要一个默认验证程序,例如ASP.NET成员身份提供程序。服务凭证必须放入您的服务行为中。另外,不要忘记将行为链接到服务定义。....注意:web.config中还有很多我没有显示的设置。元素名称只是方向性的。这仅用于使用户名凭据有效。您可以查看MSDN,因为他们有很多很棒的教程,例如http://msdn.microsoft.com/en-us/library/aa702565.aspx,http://msdn.microsoft.com/en-us/库/aa354513.aspx。是的,实际上如果您以正确的方式配置它,它将在授予客户端运行服务方法的权限之前对客户端(用户、客户端服务)进行身份验证。以上就是《C#学习教程:基本身份认证与WCF》分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: