cancel
Showing results for 
Search instead for 
Did you mean: 

Blazor WASM aspnetcore hosted app - need Swagger configuration for Server project with Authorization

wvmstr
Occasional Visitor

Blazor WASM aspnetcore hosted app - need Swagger configuration for Server project with Authorization

Using the VS2019 template which I believe has IdentityServer 4.0

 

I have already added the standard Swagger configurations to Startup.cs:

 

public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));

var dataConnectionString = Configuration.GetConnectionString("DataConnection");
services.AddDbContext<SchoolDBContext>(option => option.UseSqlServer(dataConnectionString));

var timeConnectionString = Configuration.GetConnectionString("TimeConnection");
services.AddDbContext<TKContext>(option => option.UseSqlServer(timeConnectionString));

services.AddCors(o => o.AddPolicy("Policy", builder => {
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));

services.Configure<IdentityOptions>(options =>
options.ClaimsIdentity.UserIdClaimType = ClaimTypes.NameIdentifier);

services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = false)
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();

services.AddIdentityServer()
.AddApiAuthorization<ApplicationUser, ApplicationDbContext>();

services.AddAuthentication()
.AddIdentityServerJwt();

services.AddControllersWithViews();
services.AddRazorPages();

services.AddSwaggerGen(c =>
{
 c.SwaggerDoc("v1", new OpenApiInfo { Title = "AMwAuth", Version = "v1" });

});
}

 

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseMigrationsEndPoint();
app.UseWebAssemblyDebugging();
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "AMwAuth v1"));
}

}

 

I can navigate to the Swagger page and can see the various controllers that are in this project, but when I attempt to Execute an action method there is an error message that indicates it is not configurated to use Authorization.  In some search results I see there us an Authorize button visible in the Swagger UI, which I don't have.

 

What configuration items do I need to add to make this work?

New Here?
Join us and watch the welcome video: