Program.cs
unknown
csharp
a year ago
2.7 kB
5
Indexable
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.IdentityModel.JsonWebTokens;
using Microsoft.IdentityModel.Tokens;
using Microsoft.AspNetCore.Authentication.Google;
using Microsoft.AspNetCore.Authentication.OAuth;
using static System.Net.WebRequestMethods;
var builder = WebApplication.CreateBuilder(args);
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
builder.Services.AddControllersWithViews();
JsonWebTokenHandler.DefaultInboundClaimTypeMap.Clear();
builder.Services.AddHttpClient("ApiClient", client =>
{
client.BaseAddress = new Uri(builder.Configuration["Api:BaseAddress"]);
});
builder.Services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
}).AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
options.LoginPath = "/Account/Login";
options.AccessDeniedPath = "/Authentication/AccessDenied";
})
.AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options =>
{
options.Authority = builder.Configuration["Authentication:OpenId:Authority"];
options.ClientId = builder.Configuration["Authentication:OpenId:ClientId"];
options.ClientSecret = builder.Configuration["Authentication:OpenId:ClientSecret"];
options.ResponseType = "code";
options.SaveTokens = true;
options.RequireHttpsMetadata = bool.Parse(builder.Configuration["Authentication:OpenId:Metadata"]);
if (options.RequireHttpsMetadata)
{
options.MetadataAddress = builder.Configuration["Authentication:OpenId:MetaAddress"];
}
options.Scope.Add("openid");
options.CallbackPath = "/login-callback";
options.SignedOutCallbackPath = "/logout-callback";
options.TokenValidationParameters = new TokenValidationParameters
{
NameClaimType = "preferred_username",
RoleClaimType = "roles"
};
})
.AddGoogle(GoogleDefaults.AuthenticationScheme, options =>
{
options.ClientId = builder.Configuration["Authentication:Google:ClientId"];
options.ClientSecret = builder.Configuration["Authentication:Google:ClientSecret"];
options.CallbackPath = "/login-callback";
});
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
//app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
Editor is loading...
Leave a Comment