我正在尝试使 WCF 服务正常工作,因此它具有简单的消息用户名/密码访问权限。
每当我尝试使用当前设置访问服务时,它都会显示:
Metadata publishing for this service is currently disabled.
我的 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>
我的 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";
}
}
}
我的 MyValidator.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");
}
}
}
}