Как включить аутентификацию Oauth только в контроллерах API в ASP .NET MVC? - PullRequest
0 голосов
/ 02 июля 2018

У меня есть одно приложение ASP .NET MVC. Он имеет как контроллеры MVC, так и контроллеры API. Я использую OAUTH 2 для аутентификации. Когда я включаю OAUTH аутентификацию, она также показывает ошибку авторизации для обычного действия контроллера.

Код, который я использую для регистрации аутентификации.

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
        var config = new HttpConfiguration();
        AppStart(config);
        SwaggerConfig.Register(config);
        HttpServer server = new HttpServer(config);
        // Accepts OAuth Service v1.0 tokens
        if (!string.IsNullOrEmpty(IdentifierUrl))
        {
            app.Map(
                new PathString("/v1"),
                p =>
                {
                    // Map to use OAuth 1 tokens            
                    p.UseEsoAccessTokenValidation(new EsoAccessTokenOptions { AuthorizationServerUrl = AuthorizationServer, Audiences = IdentifierUrl.Split(',') });
                    p.UseWebApi(server);
                });
        }

        // Accepts OAuth Service v2.0 tokens
        //app.Map("/v2", v2app =>
        //{
        app.UseEsoAccessTokenValidation(new EsoAccessTokenOptions
        {
            AuthorizationServerUrl = AuthorizationServer,
            Scopes = Scopes.Split(',')
        });

Это ошибка, которую я получаю для каждого URL.

error page

1 Ответ

0 голосов
/ 02 июля 2018

Я предлагаю сделать следующее.

Если вы хотите авторизацию на:

[Authorize]
public class AdminController : Controller
{
  //Action methods here
}

Если вы хотите отключить его:

    [AllowAnonymous]
    public class AdminController : Controller
    {
      //Action methods here
    }

EDITED

Итак, как вы упоминаете, у вас есть проблемы с доступом к корню ...

Есть несколько вещей, которые вы можете попробовать!

1. Изменить номер порта

Свойства проекта> Интернет

enter image description here

2. Удалить скрытую папку .vs

  1. Перейдите в папку вашего проекта и откройте папку .vs (не снимайте флажок скрытого элемента, поскольку иногда эта папка может быть скрыта)

  2. в папке .vs - открыть конфигурацию

  3. видите этот файл конфигурации applicationhost? Удалите эту вещь. (Не беспокойтесь, она автоматически восстановится после перекомпиляции проекта.)

3. Или попробуйте создать новый виртуальный каталог

Свойства проекта> Интернет> Создание виртуального каталога работало для меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...