2013-09-19 3 views
1

Предположим, что я уже отправил пользовательские данные проверки подлинности от моего клиента и извлечение ss-id из веб-API стека служб.Как пройти аутентификацию в веб-интерфейсе Servicestack и получить доступ к фильтру [Authenticate]

var client = new JsonServiceClient("http://somewhere/API"); 
var response = client.Post(new Auth() {UserName = "myuser", Password = "password123"}); 

, а затем я пытаюсь получить доступ к другой функции API с помощью функции [Аутентификация], но она всегда терпит неудачу с 401 неавторизованным.

public class UsersServices : Service 
{ 
    public UsersRepository Repository { get; set; } 

    //cannot access this... 
    [Authenticate] 
    public object Get(Users user) 
    { 
     return RequestContext.ToOptimizedResultUsingCache(
      base.Cache, UrnId.Create<Users>("requestAll"),() => 
      { 
       var data = Repository.GetAllUsers(); 
       return data; 
      }); 
    } 
} 

Как я могу получить доступ к API на стороне клиента после аутентификации?

ответ

2

Используйте SetCredentials, чтобы передать информацию о себе с каждым запросом клиента.

var client = new JsonServiceClient("http://somewhere/API"); 
client.SetCredentials("myuser","password123"); 
var response = client.Get<ResponseDTO>(); 
+0

Привет, мне нужно пройти аутентификацию сначала, как указано выше, или просто прямо с помощью функции SetCredential? – reptildarat

+0

Просто 'SetCredential' на каждом новом экземпляре вашего сервисного клиента. –

+0

Привет, это не сработало ... Я пробовал вот так: client.Get ("http: // где-то/API/Пользователи"); – reptildarat

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