2014-01-20 2 views
1

Я новичок в ASP.NET и отдыха ...авторизации в Web API в ASP.NET MVC

Я просто сделав веб-API2 Мой REST сервер готов к работе, а также клиент готов.

API должен получить доступ только действительным пользователем с именем пользователя и паролем. Поэтому необходимо проверить действительный пользователь, поэтому я попытался получить доступ к пользователю по:

var uri = 'http://localhost/ProductsApp/api/products/username/password'; 

$(document).ready(function() { 
    // Send an AJAX request 
    $.getJSON(uri) 
     .done(function (data) { 
      // On success, 'data' contains a list of products. 
      $.each(data, function (key, item) { 
       // Add a list item for the product. 
       $('<li>', { text: formatItem(item) }).appendTo($('#products')); 
      }); 
     }); 
}); 

А что называем это доступ метод ниже:

public IEnumerable<Clients> GetAllClients(string username, string password) 
{ 

    //Here i tried to check the username and password 

    HttpRequestMessage message = new HttpRequestMessage(); 
    message.GetClientCertificate(); 
    return dbContext.Clients.ToList(); 
} 

Но кидает ошибку. И кажется, что это не метод. Пожалуйста, вы можете помочь мне сослаться на хороший учебник или решить эту проблему ... Было бы очень полезно.

ответ

0

Прогулка по реализации webapi2 по умолчанию Канал аутентификации может быть найден here.

Чтобы зарегистрировать пользователя, нужно размещать в/API/счета/регистрация. Тело будет включать свойства UserName, Password и ConfirmPassword.

{ 
    'UserName': 'neil', 
    'Password': 'secretPassword', 
    'ConfirmPassword: 'secretPassword' 
} 

И добавить Content-Type: application/json в качестве заголовка.

Как только вы зарегистрированный пользователь, вы можете зарегистрировать их, отправив в/Token и получив токен, который используется для идентификации пользователя. Вам необходимо добавить следующие заголовки на этот пост:

Content-Type: application/x-www-form-urlencoded 

И тело будет выглядеть следующим образом:

grant_type=password&username=neil&password=secretPassword 

Это сообщение возвращает маркер. Вам нужно будет включить токен в виде заголовка со следующими запросами. Заголовок выглядит так:

Authorization: bearer xxx *where xxx is the token.* 
Смежные вопросы