2016-09-20 4 views
0

Я пытаюсь вернуть 401 из моего веб-Api, если пользователь не вошел в систему, а не отправил их на страницу регистрации при использовании атрибута Authorize для методов api. Я видел несколько идей о том, как исправить это, но никто не работал для меня.Возврат 401 сообщение из веб-api в приложении для проверки подлинности форм

Я использую web api 5.2.3, и он не похож на response.SuppressFormsAuthenticationRedirect = true; работает больше.

Я также попытался переопределить HandleUnauthorizedRequest без везения, он по-прежнему перенаправляет меня на страницу входа. Спасибо за вашу помощь

+0

я, наконец, сделал его работу, пытаясь ответить снова здесь. http://stackoverflow.com/questions/34880817/make-web-api-authentication-return-401-instead-of-redirect-to-login-page – user973671

ответ

0

Обычно я работаю с ядром ASP.Net, а среда использует тот же тип контроллера для Web APi и MVC. однако, это, как я бы озаботиться этим вопросом, в services.AddIdentity метод моего класса запуска

config.Cookies.ApplicationCookie.Events = new CookieAuthenticationEvents() 
{ 
    OnRedirectToLogin = ctx => 
    { 
     if (ctx.Request.Path.StartsWithSegments("/api") && ctx.Response.StatusCode == 200) 
     { 
      ctx.Response.StatusCode = (int)HttpStatusCode.Unauthorized; 
     } 
     else 
     { 
      ctx.Response.Redirect(ctx.RedirectUri); 
     } 
      return Task.FromResult(0); 
    } 
}; 

Позвольте мне знать, если это работает для вас

+0

Да, я не использую ядро ​​asp.net. Это приложение MVC5. Спасибо за вашу помощь! – user973671

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

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