使用 WCF 服务的消息模式密码
本文关键字:模式 密码 消息 WCF 服务 使用 | 更新日期: 2023-09-27 18:32:23
我正在尝试使WCF服务正常工作,以便它具有简单的消息用户名/密码访问权限。
每当我尝试使用当前设置访问服务时,它都会说:
Metadata publishing for this service is currently disabled.
我的网络配置(My Web.config
) <system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="Binding1">
<!-- UsernameToken over Transport Security -->
<security mode="Message" >
<message clientCredentialType="UserName"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="MyService" behaviorConfiguration="ServiceBehavior">
<endpoint address="http://localhost/Service.svc" binding="wsHttpBinding" contract="IService" bindingConfiguration="Binding1">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
<serviceCredentials>
<!-- Use our own custom validation -->
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="WebApplication5.MyValidator, WebApplication5"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
my MyService.svc:
namespace WebApplication5
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the
class name "MyService" in code, svc and config file together.
public class MyService : IMyService
{
public string DoWork()
{
return "You Got It";
}
}
}
我的我的验证器.cs:
namespace WebApplication5
{
class MyValidator : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
if ((userName == "shiv123") && (password == "pass123"))
{
}
else
{
throw new FaultException("Invalid credentials");
}
}
}
}
XML 中的服务应包含命名空间。
尝试使用 :
<service name="WebApplication5.MyService" ...