2016-05-28 14 views
2

В моем проекте есть интерфейсный интерфейс и API в том же решении, поэтому я создаю настраиваемое промежуточное программное обеспечение для проверки подлинности, которое предназначено для авторизации только контроллеров API, поскольку Front-end-контроллеры используют Identity ,Схема промежуточного программного обеспечения Asp.Net Core Конфигурация промежуточного программного обеспечения

Я устанавливаю опцию AutomaticAuthenticate ложной идентичности на Startup.cs как этот

services.AddIdentity<ApplicationUser, IdentityRole>(config => 
     {     
      config.User.RequireUniqueEmail = true; 
      config.Password.RequiredLength = 4; 
      config.Cookies.ApplicationCookie.AuthenticationScheme = "Cookie"; 
      config.Cookies.ApplicationCookie.AutomaticAuthenticate = false;       
     }).AddEntityFrameworkStores<DbContext>() 
     .AddDefaultTokenProviders(); 

И для моего пользовательского промежуточного слоя я реализовал собственные варианты, и я сделал это

app.UseApiAuthorizationMiddleware(new ApiAuthenticationOptions 
     { 
      AuthenticationScheme = "Api", 
      AutomaticAuthenticate = false 
     }); 

Теперь, когда Я стараюсь использовать

[Authorize(AuthenticationSchemes = "Api")] 

В моем диспетчере Visul Studio говорит мне, что Auth Не удалось найти идентификационные коды, и мне не хватает и сборки или ссылки. Быстрый инструмент Action говорит мне, чтобы добавить

"System.Net.Primitives": "4.0.11-rc2-24027" 

, но я в конечном итоге с версии 4.0.10 и он не компилируется ... Я не уверен, если то, что я сделал до сих пор является хорошим или, если на самом деле здесь есть проблема.

Надеюсь, это ясно.

благодаря

+0

Я предполагаю, что вопрос стороны, если это способ сделать Identity не автоматическим? –

+0

Вы вызываете app.UseApiAuthorizationMiddleware перед app.UseIdentity? Получает ли промежуточное программное обеспечение наследование AuthenticationMiddleware? – Set

+0

Я вызываю его после и я наследую от authenticationmiddleware –

ответ

0

Чтобы правильно реализовать в промежуточное программное обеспечение на заказ проверки подлинности, я должен был не только реализовать промежуточное программное обеспечение, который наследуется от AuthenticationMiddleware, но и реализовать обработчик аутентификации, который простирается от AuthenticationHandler и вся логика идет по методу HandleAuthenticateAsync()

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