Я пытаюсь создать пользовательскую службу аутентификации ASP.NET Forms, используя WCF. Я звоню через тестовую страницу, которая содержит только одну строку JS (кроме скриптов ScriptManager). Проблема в том, что сервер возвращает код ответа 500, а тело ответа пусто. Мои контрольные точки в методе службы и в Application_Error в Global.asax не достигаются.
Sys.Services.AuthenticationService.login('user', 'pass', false, null, null, null, null, null);
Я вижу запрос на сервер в инструментах браузера со следующим телом запроса:
{"userName":"user","password":"pass","createPersistentCookie":false}
Другие вещи на стороне запроса также выглядят хорошо.
Вот служба конфигурации:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="BtxAuthenticationEndpointBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
</serviceBehaviors>
</behaviors>
<services>
<service name="MyNamespace.BtxAuthenticationService">
<endpoint contract="MyNamespace.IBtxAuthenticationService" binding="webHttpBinding" behaviorConfiguration="BtxAuthenticationEndpointBehavior"/>
</service>
</services>
</system.serviceModel>
И объявление интерфейса:
[ServiceContract]
public interface IBtxAuthenticationService
{
[OperationContract]
[WebInvoke]
bool Login(string username, string password, bool createPersistentCookie);
[OperationContract]
[WebInvoke]
void Logout();
}
Реализация:
public class BtxAuthenticationService : IBtxAuthenticationService
{
public bool Login(string username, string password, bool createPersistentCookie)
{
... irrelevant because this is never hit
}
public void Logout()
{
}
}
Может кто-нибудь сказать мне, как настроить это или указать мне способ отладки. Также будет приветствоваться статья о реализации пользовательской проверки подлинности с помощью службы WCF. Я попытался поэкспериментировать с различными другими настройками, включая все настройки сведений об исключениях, которые я смог найти, но не смог добиться какого-либо прогресса (хотя мне удалось добиться некоторого регресса и получить другие исключения, например, отсутствие конечных точек и т. Д.)
Спасибо за ваше время.