Improve access_denied handling #710
Description
Moved from aspnet-contrib/AspNet.Security.OAuth.Providers#81.
Not sure if this has been addressed yet:
ASP.NET Core RC1 Sample application (VS 2015 Community - not update 1)
project.json (public nuget)
"AspNet.Security.OAuth.BattleNet": "1.0.0-alpha3",
Clean user - never been to site - no identity db entries - no battle.net correlation to OAuth Application (Battlenet/identity account combo have never seen this application).
Reproduction:
- Log In (upper right nav)
- Log Into Battle.Net (main body link)
- Press Cancel button (On Battle.Net's signin page)
3a) (note) unselecting wow-profile and clicking continue works as expectedRedirects to our /signin-battlenet(?) which is the standard url for a successful signin and is handled by the 3rd party provider... 3rd party provider does not properly pick up on the "cancel" and throws a 500 error. Regardless of Debug mode, details of this error are not provided.
- Is a redirect to me happening beyond /signin-battlenet that I haven't detected? Let me know....
- Or is it an issue with the base OAuth Provider? (quickly! RC2 is imminent ;)
Startup ConfigureServices:
services.AddIdentity<ApplicationUser, IdentityRole>(options => {
options.Cookies.ApplicationCookie.ExpireTimeSpan = TimeSpan.FromDays(29);
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
Startup Configure:
app.UseBattleNetAuthentication(options =>
{
options.SaveTokensAsClaims = true;
options.Scope.Add("wow.profile");
options.ClientSecret = Configuration["xxxxxxxxx:BattleNet:Secret"];
options.ClientId = Configuration["xxxxxxxxx:BattleNet:Key"];
});
app.UseCookieAuthentication(options =>
{
options.AutomaticAuthenticate = true;
options.AuthenticationScheme = "PublicAuth";
options.ClaimsIssuer = "xxxxxxxxx";
options.CookieSecure = CookieSecureOption.Never;
options.ExpireTimeSpan = TimeSpan.FromDays(30);
});
I doubt the CookieAuth is conflicting - it's a separate cookie, separate auth process that brings insecure claims down to where I can access certain info without https. No calls are made in regards to this prior to battle.net redirecting back to /signin-battlenet.