49 lines
1.7 KiB
C#

using HRD.AppLogger;
using HRD.LDAPService.JWT;
using HRD.WebApi.DAL.Middleware;
using HRD.WebApi.Helpers;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Server.IISIntegration;
using Microsoft.Extensions.DependencyInjection;
namespace StaffDBServer.SharedExtensions
{
public static class ServiceExtensions
{
public static void ConfigureWebApiExtensionsAtFirst(this IServiceCollection services)
{
//services.AddCors();
services.AddCustomCors("AllowAllOrigins");
services.Configure<IISOptions>(options =>
{
options.AuthenticationDisplayName = "Windows";
options.ForwardClientCertificate = true;
options.AutomaticAuthentication = true;
});
services.AddAuthentication(IISDefaults.AuthenticationScheme);
services.ConfigureJWT(Extends.JwtMiddlewareOptionsHelper.GetJwtMiddlewareOptions()); ;
services.ConfigureDAL(WebApiMiddlewareOptionsHelper.GetWebApiMiddlewareOptions());
services.AddSingleton<ILoggerManager, LoggerManager>();
services.ConfigureSwagger();
}
public static void ConfigureWebApiExtensionsEnd(this IServiceCollection services)
{
services.AddMvc()
.ConfigureApiBehaviorOptions(options =>
{
options.InvalidModelStateResponseFactory = context =>
{
var errors = new HRD.WebApi.Helpers.HttpErrorDetails(context);
return new BadRequestObjectResult(errors);
};
});
}
}
}