У меня есть сервис WCF. Мой сервис имеет 2 конечные точки, каждая из которых имеет свой контакт. Служба использует настраиваемую проверку подлинности имени пользователя (определенную в атрибуте customUserNamePasswordValidatorType из ниже). Проблема в том, что обе конечные точки будут использовать один и тот же метод проверки подлинности.
Можно ли в любом случае определить разные методы проверки подлинности для каждой конечной точки?
Доступ к каждой конечной точке имеет только одно приложение. Так что, если я смогу передать имя приложения в метод аутентификации, что также будет работать.
Это мой app.config
<services>
<service behaviorConfiguration="Behavior1" name="MyServer.Service">
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
<endpoint address="" binding="netTcpBinding" bindingConfiguration="Binding1" contract="MyServer.IService" />
<endpoint address="service2" binding="netTcpBinding" bindingConfiguration="Binding1" contract="MyServer.ISecondService" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:37100/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="Behavior1">
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceMetadata />
<serviceCredentials>
<userNameAuthentication customUserNamePasswordValidatorType="MyServer.Authentication" userNamePasswordValidationMode="Custom" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
Это пользовательский метод аутентификации. Если я смогу где-то передать третий параметр, называемый appName, это также сработает.
public class Authentication : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
}
}
Большое спасибо