IdentityServer3 с основным клиентом aspnet

Я настроил IdentityServer3 и могу успешно пройти аутентификацию, используя имя пользователя и пароль, хранящиеся в базе данных aspnetIdentity. Проблема на стороне клиентского приложения MVC. После получения кода авторизации от приложения identityserver выдается следующее исключение:

При обработке запроса произошло необработанное исключение.

InvalidOperationException: обработчик аутентификации не настроен для обработки схемы: файлы cookie

Мой Startup.cs выглядит так:

if (env.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
    app.UseDatabaseErrorPage();
    app.UseBrowserLink();
}
else
{
    app.UseExceptionHandler("/Home/Error");
}
app.UseApplicationInsightsExceptionTelemetry();
app.UseStaticFiles();
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
    AuthenticationScheme = "Cookies",
    AutomaticAuthenticate = true,
    AutomaticChallenge = true

});
var secret = Configuration["Secrets:SharedSecret"];//.ToSha256();
var connectOptions = new OpenIdConnectOptions
{
    AutomaticChallenge = true,
    AutomaticAuthenticate=true,
    AuthenticationScheme = "oidc",
    SignInScheme = "cookies",
    Authority = "http://localhost:4889/core/",
    PostLogoutRedirectUri = "http://localhost:5059/",
    CallbackPath = "/home/index",
    ClientSecret = secret,
    RequireHttpsMetadata = false,
    ClientId = "communicator",
    DisplayName = "Communicator",
    ResponseType = "code id_token",
    GetClaimsFromUserInfoEndpoint = true,
    SaveTokens = true,
    Events = new OpenIdConnectEvents()
    {
        OnUserInformationReceived = async y =>
        {

            var identity = y.Ticket.Principal.Identity as ClaimsIdentity;
            var subject = identity.Claims.FirstOrDefault(z => z.Type == "sub");
            // Do something with subject like lookup in local users DB.
            var newIdentity = new ClaimsIdentity( y.Ticket.AuthenticationScheme,"given_name","role");
            // Do some stuff to `newIdentity` like adding claims.
            // Create a new ticket with `newIdentity`.
                //Ticket = new Ticket(new ClaimsPrincipal(newIdentity),
                //y.Ticket.Properties,
                //y.Ticket.AuthenticationScheme);

            await Task.FromResult(0);
        },
        OnAuthorizationCodeReceived= async c=>
        {
            var identity = c.Ticket.Principal.Identity as ClaimsIdentity;
            var subject =   identity.Claims.FirstOrDefault(z => z.Type == "sub");
            await Task.FromResult(0);
        }

    }
};
connectOptions.Scope.Clear();
connectOptions.Scope.Add("openid");
connectOptions.Scope.Add("profile");
connectOptions.Scope.Add("roles");
connectOptions.Scope.Add("smsapi");
app.UseOpenIdConnectAuthentication(connectOptions);

person Takaz Mutasa    schedule 09.06.2016    source источник
comment
AuthenticationScheme чувствителен к регистру в CookieAuthenticationOptions?   -  person Jamie Dunstan    schedule 10.06.2016


Ответы (1)


Похоже, у вас есть проблема с чувствительностью к регистру в вашей конфигурации.

person Brock Allen    schedule 11.06.2016