Приложение .Net Core 2.x, размещенное на сервере IIS "Схема аутентификации не указана" - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть основное веб-приложение .Net, размещенное в среде Windows Server 2016 с установленным ядром .Net.

Я обнаружил, что после включения фильтра в метод ConfigureServices в Startup.cs, публикация на сервереIIS, запустите приложение, я получил ошибку Http 500.

Это код в моем ConfigureServices и Configure метод

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc()
        .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());

    services.AddDbContext<LocalAppDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

    services.AddSingleton<IConfiguration>(Configuration);

    services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();

    services.AddAuthentication(IISDefaults.AuthenticationScheme);

            // Global filter
            services.AddMvc(config =>
    {
        var policy = new AuthorizationPolicyBuilder()
                            .RequireAuthenticatedUser()
        config.Filters.Add(new AuthorizeFilter(policy));
    });
}


public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseBrowserLink();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
    }

    app.UseStaticFiles();

    app.UseAuthentication();

    app.UseStatusCodePagesWithRedirects("/Error/StatusCode/{0}");

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Requests}/{action=Index}/{id?}");
    });
}

в файле журнала, я вижу это в верхней частивесь вывод стека:

ошибка: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware [0]
Произошло необработанное исключение: не указана схема authenticationScheme, и не найдена DefaultChallengeScheme.
System.InvalidOperationException: Не указана схема authenticationScheme, и не найден DefaultChallengeScheme.

После некоторого поиска в Google, похоже, потому что схема аутентификации не определена.

Но выше строки services.AddMvc, У меня есть AddAuthentication, которая использует схему аутентификации IISDefaultse:

services.AddAuthentication(IISDefaults.AuthenticationScheme);

Любая идея, что вызывает эту 500 внутреннюю ошибку сервера в моем случае?

1 Ответ

0 голосов
/ 19 сентября 2018

Код в моем вопросе правильный.

Это глупая ошибка, я не включил проверку подлинности Windows, когда пытаюсь использовать учетную запись домена для проверки подлинности доступа пользователя.По умолчанию используется анонимная аутентификация.

...