4

Я играю с ASP vnext и AngularJS. Я создал веб-API, я использую некоторые контроллеры и использую углы, чтобы сделать некоторую веб-магию.Руководство по созданию и проверке маркеров антиобщественного токена в ASP.NET 5

Я следовал большую часть этого руководства, чтобы получить мой проект и работает: http://stephenwalther.com/archive/2015/01/29/asp-net-5-and-angularjs-part-6-security

... который работает отлично. Я создал свой дБ и такой, и у меня все работает. У меня также установлена ​​система идентификации, но я пока не использую ее.

Я хочу опубликовать некоторые данные в WebAPI. Который также отлично работает, но теперь я хочу это сделать, используя токены подделки. Я гугл много, и я предполагаю, что это имеет наибольший смысл: novablog

Однако: это использует System.Web.Helpers для создания маркеров и их проверки. Они больше не доступны в vnext. Я не могу понять, что использовать для создания и проверки токенов сейчас.

Любые идеи?

ответ

2

Ниже приведен пример из ASP.NET 5'в образце MusicStore:

https://github.com/aspnet/MusicStore/blob/master/src/MusicStore/Controllers/ShoppingCartController.cs#L62

Отрывок из приведенной выше ссылке (Заметьте, что вы можете использовать [FromServices] AntiForgery antiforgery в качестве параметра к действию, если не делать ничего, как как ссылка делает выше):

[HttpPost] 
public async Task<IActionResult> RemoveFromCart(int id) 
{ 
    var formParameters = await Context.Request.ReadFormAsync(); 
    var requestVerification = formParameters["RequestVerificationToken"]; 
    string cookieToken = null; 
    string formToken = null; 

    if (!string.IsNullOrWhiteSpace(requestVerification)) 
    { 
     var tokens = requestVerification.Split(':'); 

     if (tokens != null && tokens.Length == 2) 
     { 
      cookieToken = tokens[0]; 
      formToken = tokens[1]; 
     } 
    } 

    var antiForgery = Context.RequestServices.GetService<AntiForgery>(); 
    antiForgery.Validate(Context, new AntiForgeryTokenSet(formToken, cookieToken)); 
    ...... 
+0

Aahhh, есть целый пример, который я могу использовать, удивительный! Спасибо что подметил это! Самое полезное! – Stefan

+0

Вы можете найти клиентскую часть кода выше на [здесь] (https://github.com/aspnet/MusicStore/blob/a7ba4f8ffe5ed23b2a2d55e8e1226e64066a7ada/src/MusicStore/Views/ShoppingCart/Index.cshtml) – cilerler

+0

У этой реализации есть проблема : Если маркер украден, он будет действителен для этого пользователя навсегда! Обычно часть cookie ДОЛЖНА перейти в файлы cookie, а другая часть в заголовках (если вы отправляете JSON) или данные формы. Таким образом, если сайт имеет надлежащую защиту, кто-то может только украсть часть токена формы данных, которая будет действительна только до тех пор, пока пользователь войдет в систему. – user2173353

0

проверка из MVC GitHub репо, ValidateAntiForgeryTokenAttribute существует.

И есть asp-anti-forgery taghelper

+0

Спасибо! Что такое taghelper? Является ли это новой заменой помощнику @ Html.AntiForgery? – Stefan

+0

'TagHelper' являются вспомогательными в html, вы все равно можете использовать старый помощник @Html, bu также пишите код, как:'

'для получения дополнительной информации см. Последний [Community Stand Up speeking about this] (https://www.youtube.com/watch?v=Tv9pv1FYP1A&list=PL0M0zPgJ3HSftTAAHttA3JQU4vOjXFquF&index=1) –

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

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