2013-09-10 1 views
1

Я использую пользовательские CredentialsAuthProvider ServiceStack для аутентификации против пользовательской базы данных и отлично работает с клиентом C#. Мне также нужно иметь возможность вызвать некоторые из моих сервисов через jQuery (в другом домене с включенным CORS), но я не знаю, как передавать учетные данные службе (которая требует аутентификации с использованием [Аутентификация]) из $ ajax или $ post. Является ли это возможным? Я вижу примеры использования BasicAuthentication, но как это будет работать с пользовательским поставщиком auth и моей пользовательской базой данных?ServiceStack Custom CredentialsAuthProvider AJAX Call

Редактировать: Я сформулировал этот вопрос плохо. Я уже прошел проверку подлинности на стороне ServiceStack, и у меня есть ss-id. Я пытаюсь выяснить, как вызвать метод службы, который требует аутентификации через jQuery с ss-id каким-то образом из другого домена.

+0

Я смотрю на эту Gist и, похоже, этот парень решает подобную проблему, но я надеялся на что-то встроенный в ServiceStack: https://gist.github.com/joeriks/4518393 –

ответ

1

Немного грубо, удалены HTML и код формы/проверки, но взяты из рабочего приложения.

Заполните свое auth 'dto', добавив любые дополнительные пользовательские свойства, которые вам нужны, и настройте URL-адрес и т. Д. После аутентификации вы можете позвонить в защищенную службу.

var auth = { 
    "userName": null, 
    "firstName": null, 
    "lastName": null, 
    "displayName": null, 
    "email": null, 
    "password": null, 
    "autoLogin": false, 
    "continue": null 
}; 
var request = $.ajax({ 
    type: "POST", 
    url: '/auth', 
    data: auth, 
    contentType: "application/json;", 
    dataType: "json" 
}); 
request.done(function (data) { 
    console.log(data); 
    //redirect to secure service (assuming SS Razor view, or make other request) 
    window.location.href = auth.continue; 
}); 
request.fail(function (jqXhr, textStatus) { 
    console.log("Request failed: " + textStatus); 
    console.log(jqXhr); 
}); 
}; 
+0

также посмотрите на источник для SocialBootstrapApi, который аутентифицируется через ajax. –

+0

Хорошо, я неправильно сформулировал свой вопрос. Я имел в виду, что я уже прошел проверку подлинности, мне просто нужно вызвать службу, требующую аутентификации с помощью jQuery. Я предполагаю, что это потребует передачи ss-id в cookie, но я не знаю, как это сделать. –

+1

Не уверен, что я понимаю вашу проблему, после того как вы аутентифицировали ответ, отправляет обратно cookie сеанса, дальнейшие запросы ajax автоматически отправляют этот файл cookie, вам не нужно вручную его передавать. –

 Смежные вопросы

  • Нет связанных вопросов^_^