2.0.3
This commit is contained in:
parent
0c601885db
commit
149937ed88
3
.gitignore
vendored
3
.gitignore
vendored
@ -6,7 +6,8 @@
|
|||||||
#
|
#
|
||||||
# or wget:
|
# or wget:
|
||||||
# wget --no-check-certificate http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore
|
# wget --no-check-certificate http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore
|
||||||
|
pre_commit.log
|
||||||
|
pre_commit.ps1
|
||||||
# User-specific files
|
# User-specific files
|
||||||
*.suo
|
*.suo
|
||||||
*.user
|
*.user
|
||||||
|
@ -1,4 +1,12 @@
|
|||||||
using Companies.Data.Ajax;
|
/*
|
||||||
|
* Author: Nikolay Dvurechensky
|
||||||
|
* Site: https://www.dvurechensky.pro/
|
||||||
|
* Gmail: dvurechenskysoft@gmail.com
|
||||||
|
* Last Updated: 12 мая 2025 07:46:05
|
||||||
|
* Version: 1.0.8
|
||||||
|
*/
|
||||||
|
|
||||||
|
using Companies.Data.Ajax;
|
||||||
using Companies.Data.Home;
|
using Companies.Data.Home;
|
||||||
using Companies.Services;
|
using Companies.Services;
|
||||||
using Extensions;
|
using Extensions;
|
||||||
|
@ -1,4 +1,12 @@
|
|||||||
using Companies.Data.Home;
|
/*
|
||||||
|
* Author: Nikolay Dvurechensky
|
||||||
|
* Site: https://www.dvurechensky.pro/
|
||||||
|
* Gmail: dvurechenskysoft@gmail.com
|
||||||
|
* Last Updated: 12 мая 2025 07:46:05
|
||||||
|
* Version: 1.0.8
|
||||||
|
*/
|
||||||
|
|
||||||
|
using Companies.Data.Home;
|
||||||
using Companies.Models;
|
using Companies.Models;
|
||||||
using Companies.Services;
|
using Companies.Services;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
@ -1,4 +1,12 @@
|
|||||||
using Companies.Data.Home;
|
/*
|
||||||
|
* Author: Nikolay Dvurechensky
|
||||||
|
* Site: https://www.dvurechensky.pro/
|
||||||
|
* Gmail: dvurechenskysoft@gmail.com
|
||||||
|
* Last Updated: 12 мая 2025 07:46:05
|
||||||
|
* Version: 1.0.8
|
||||||
|
*/
|
||||||
|
|
||||||
|
using Companies.Data.Home;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace Companies.Data.Ajax
|
namespace Companies.Data.Ajax
|
||||||
|
@ -1,4 +1,12 @@
|
|||||||
using System.ComponentModel.DataAnnotations.Schema;
|
/*
|
||||||
|
* Author: Nikolay Dvurechensky
|
||||||
|
* Site: https://www.dvurechensky.pro/
|
||||||
|
* Gmail: dvurechenskysoft@gmail.com
|
||||||
|
* Last Updated: 12 мая 2025 07:46:05
|
||||||
|
* Version: 1.0.8
|
||||||
|
*/
|
||||||
|
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
@ -1,4 +1,12 @@
|
|||||||
namespace Extensions;
|
/*
|
||||||
|
* Author: Nikolay Dvurechensky
|
||||||
|
* Site: https://www.dvurechensky.pro/
|
||||||
|
* Gmail: dvurechenskysoft@gmail.com
|
||||||
|
* Last Updated: 12 мая 2025 07:46:05
|
||||||
|
* Version: 1.0.8
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Extensions;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс вспомогательных методов для авторизации
|
/// Класс вспомогательных методов для авторизации
|
||||||
|
@ -1,4 +1,12 @@
|
|||||||
using System.Text.Json;
|
/*
|
||||||
|
* Author: Nikolay Dvurechensky
|
||||||
|
* Site: https://www.dvurechensky.pro/
|
||||||
|
* Gmail: dvurechenskysoft@gmail.com
|
||||||
|
* Last Updated: 12 мая 2025 07:46:05
|
||||||
|
* Version: 1.0.8
|
||||||
|
*/
|
||||||
|
|
||||||
|
using System.Text.Json;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
@ -1,4 +1,12 @@
|
|||||||
using Microsoft.AspNetCore.Antiforgery;
|
/*
|
||||||
|
* Author: Nikolay Dvurechensky
|
||||||
|
* Site: https://www.dvurechensky.pro/
|
||||||
|
* Gmail: dvurechenskysoft@gmail.com
|
||||||
|
* Last Updated: 12 мая 2025 07:46:05
|
||||||
|
* Version: 1.0.8
|
||||||
|
*/
|
||||||
|
|
||||||
|
using Microsoft.AspNetCore.Antiforgery;
|
||||||
|
|
||||||
namespace Middleware;
|
namespace Middleware;
|
||||||
|
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* Author: Nikolay Dvurechensky
|
||||||
|
* Site: https://www.dvurechensky.pro/
|
||||||
|
* Gmail: dvurechenskysoft@gmail.com
|
||||||
|
* Last Updated: 12 мая 2025 07:46:05
|
||||||
|
* Version: 1.0.8
|
||||||
|
*/
|
||||||
|
|
||||||
namespace Companies.Models
|
namespace Companies.Models
|
||||||
{
|
{
|
||||||
public class ErrorViewModel
|
public class ErrorViewModel
|
||||||
|
@ -1,4 +1,12 @@
|
|||||||
using Companies.Data.Home;
|
/*
|
||||||
|
* Author: Nikolay Dvurechensky
|
||||||
|
* Site: https://www.dvurechensky.pro/
|
||||||
|
* Gmail: dvurechenskysoft@gmail.com
|
||||||
|
* Last Updated: 12 мая 2025 07:46:05
|
||||||
|
* Version: 1.0.8
|
||||||
|
*/
|
||||||
|
|
||||||
|
using Companies.Data.Home;
|
||||||
|
|
||||||
namespace Models;
|
namespace Models;
|
||||||
|
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* Author: Nikolay Dvurechensky
|
||||||
|
* Site: https://www.dvurechensky.pro/
|
||||||
|
* Gmail: dvurechenskysoft@gmail.com
|
||||||
|
* Last Updated: 12 мая 2025 07:46:05
|
||||||
|
* Version: 1.0.8
|
||||||
|
*/
|
||||||
|
|
||||||
using Companies.Services;
|
using Companies.Services;
|
||||||
using Extensions;
|
using Extensions;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
@ -11,38 +19,38 @@ var connection = builder.Configuration.GetConnectionString("DefaultConnection");
|
|||||||
// Configure Database
|
// Configure Database
|
||||||
builder.Services.AddDbContext<DatabaseContext>(options =>
|
builder.Services.AddDbContext<DatabaseContext>(options =>
|
||||||
options.UseSqlite(connection));
|
options.UseSqlite(connection));
|
||||||
//конфигурация политики кук
|
//конфигурация политики кук
|
||||||
builder.Services.Configure<CookiePolicyOptions>(options =>
|
builder.Services.Configure<CookiePolicyOptions>(options =>
|
||||||
{
|
{
|
||||||
options.CheckConsentNeeded = _ => false; //политики согласия не оцениваются
|
options.CheckConsentNeeded = _ => false; //политики согласия не оцениваются
|
||||||
options.MinimumSameSitePolicy = SameSiteMode.None; //запрет переопределения значений cookie
|
options.MinimumSameSitePolicy = SameSiteMode.None; //запрет переопределения значений cookie
|
||||||
options.Secure = CookieSecurePolicy.Always; //файлы cookie должны быть безопасными
|
options.Secure = CookieSecurePolicy.Always; //файлы cookie должны быть безопасными
|
||||||
});
|
});
|
||||||
builder.Services.AddSession(options =>//конфигурируем параметры сессии
|
builder.Services.AddSession(options =>//конфигурируем параметры сессии
|
||||||
{
|
{
|
||||||
options.Cookie.Name = AuthExt.NameSessionCookie; //ставим название куку сессии
|
options.Cookie.Name = AuthExt.NameSessionCookie; //ставим название куку сессии
|
||||||
options.IdleTimeout = TimeSpan.FromMinutes(10); //время хранения сессии при бездействии
|
options.IdleTimeout = TimeSpan.FromMinutes(10); //время хранения сессии при бездействии
|
||||||
options.Cookie.HttpOnly = true; //доступ только с сервера
|
options.Cookie.HttpOnly = true; //доступ только с сервера
|
||||||
options.Cookie.IsEssential = true; //нужен ли файл cookie для работы (true-проверки политики согласия пропускаются)
|
options.Cookie.IsEssential = true; //нужен ли файл cookie для работы (true-проверки политики согласия пропускаются)
|
||||||
});
|
});
|
||||||
builder.Services.AddAntiforgery(options =>//настройки службы против подделки запросов
|
builder.Services.AddAntiforgery(options =>//настройки службы против подделки запросов
|
||||||
{
|
{
|
||||||
options.HeaderName = "X-CSRF-TOKEN";
|
options.HeaderName = "X-CSRF-TOKEN";
|
||||||
});
|
});
|
||||||
|
|
||||||
builder.Services.AddControllersWithViews();// Add services to the container.
|
builder.Services.AddControllersWithViews();// Add services to the container.
|
||||||
|
|
||||||
builder.Services.AddCors(); //добавляем политику CORS
|
builder.Services.AddCors(); //добавляем политику CORS
|
||||||
|
|
||||||
//добавляем Swagger
|
//добавляем Swagger
|
||||||
builder.Services.AddSwaggerGen(options =>
|
builder.Services.AddSwaggerGen(options =>
|
||||||
{
|
{
|
||||||
//пишем опции Swagger
|
//пишем опции Swagger
|
||||||
options.SwaggerDoc("v1", new OpenApiInfo
|
options.SwaggerDoc("v1", new OpenApiInfo
|
||||||
{
|
{
|
||||||
Version = "1.0.1",
|
Version = "1.0.1",
|
||||||
Title = "REST API Strategy Risk",
|
Title = "REST API Strategy Risk",
|
||||||
Description = "Тестовове задание",
|
Description = "Тестовове задание",
|
||||||
Contact = new OpenApiContact
|
Contact = new OpenApiContact
|
||||||
{
|
{
|
||||||
Name = "Nikolay",
|
Name = "Nikolay",
|
||||||
@ -59,7 +67,7 @@ var app = builder.Build();
|
|||||||
app.UseSwagger();
|
app.UseSwagger();
|
||||||
app.UseSwaggerUI(c =>
|
app.UseSwaggerUI(c =>
|
||||||
{
|
{
|
||||||
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Документация");
|
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Документация");
|
||||||
c.RoutePrefix = "docs";
|
c.RoutePrefix = "docs";
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -77,17 +85,17 @@ else
|
|||||||
|
|
||||||
app.UseStaticFiles();
|
app.UseStaticFiles();
|
||||||
|
|
||||||
app.UseCookiePolicy(); //использовать политику куки
|
app.UseCookiePolicy(); //использовать политику куки
|
||||||
|
|
||||||
app.UseSession(); //использовать сессии
|
app.UseSession(); //использовать сессии
|
||||||
|
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
|
|
||||||
app.UseMiddleware<AntiforgeryMiddleware>(); //обработчик службы против подделки запросов
|
app.UseMiddleware<AntiforgeryMiddleware>(); //обработчик службы против подделки запросов
|
||||||
|
|
||||||
app.UseAuthorization();
|
app.UseAuthorization();
|
||||||
|
|
||||||
app.UseCors(options =>//используем CORS с любых хостов
|
app.UseCors(options =>//используем CORS с любых хостов
|
||||||
{
|
{
|
||||||
options.SetIsOriginAllowed(_ => true)
|
options.SetIsOriginAllowed(_ => true)
|
||||||
.AllowAnyMethod()
|
.AllowAnyMethod()
|
||||||
@ -96,10 +104,10 @@ app.UseCors(options =>//
|
|||||||
});
|
});
|
||||||
|
|
||||||
#pragma warning disable ASP0014
|
#pragma warning disable ASP0014
|
||||||
app.UseEndpoints(endpoints =>//маршрутизация
|
app.UseEndpoints(endpoints =>//маршрутизация
|
||||||
{
|
{
|
||||||
endpoints.MapDefaultControllerRoute();//дефолтный роутер
|
endpoints.MapDefaultControllerRoute();//дефолтный роутер
|
||||||
endpoints.MapControllers();//для маршрутизации если используются атрибуты
|
endpoints.MapControllers();//для маршрутизации если используются атрибуты
|
||||||
});
|
});
|
||||||
#pragma warning restore ASP0014
|
#pragma warning restore ASP0014
|
||||||
|
|
||||||
|
@ -1,4 +1,12 @@
|
|||||||
using Companies.Data.Home;
|
/*
|
||||||
|
* Author: Nikolay Dvurechensky
|
||||||
|
* Site: https://www.dvurechensky.pro/
|
||||||
|
* Gmail: dvurechenskysoft@gmail.com
|
||||||
|
* Last Updated: 12 мая 2025 07:46:05
|
||||||
|
* Version: 1.0.8
|
||||||
|
*/
|
||||||
|
|
||||||
|
using Companies.Data.Home;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore.Diagnostics;
|
using Microsoft.EntityFrameworkCore.Diagnostics;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
Loading…
Reference in New Issue
Block a user