Проблемы с использованием OAuth2 в проекте web api core dotnet core - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть приложение, которое использует Aurelia в качестве внешнего интерфейса и ядра точечной сети для WEB API.

Я должен провести аутентификацию и авторизацию вокруг моего WEB API.Я пытаюсь использовать OAuth (Microsoft.Owin.Security.OAuth) для этой цели.

У меня есть пара вопросов здесь

  1. Я хотел бы знать, возможно ли просто использовать данные (пользователей) из базы данных сервера SQL для аутентификации.Все примеры были привязаны к структуре сущности.Так что мне было трудно отделить это.

Я начал с минимального проекта и только что обновил свой класс запуска.

Это мой метод настройки служб в классе запуска

services.AddAuthentication(options =>
            {
                options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            }).AddOAuth("", Options =>
            {
                Options.ClientId = "MyApp";
                Options.ClientSecret = "MyAppSecret";
                Options.CallbackPath = new PathString("//");
                Options.AuthorizationEndpoint = "https://localhost:44360/account/authorize";
                Options.TokenEndpoint = "https://localhost:44360/account/token";
                Options.Events.OnCreatingTicket = async context =>
                {

                };
                Options.Events.OnRemoteFailure = async context =>
                {

                };
                Options.Events.OnTicketReceived = async context =>
                {

                };
                Options.Events.OnRedirectToAuthorizationEndpoint = async context =>
                {

                };
            });
Я добавил схему по умолчанию, но все еще получаю ошибку.Я что-то упустил?

Ошибка

   <ul>
     <li>
          <h2 class="stackerror">InvalidOperationException: No authenticationScheme was specified, and there was no DefaultChallengeScheme found.
   </h2> 
<ul>

1 Ответ

0 голосов
/ 28 июня 2019

Та же проблема здесь. Нашел другой пример здесь и исправил мой, добавив дополнительные параметры в AddAuthentication ():

services.AddAuthentication(options =>
            {
                    options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                    options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                    options.DefaultChallengeScheme = "";
            }).AddOAuth("", Options => ...);
...