Вывод данных из Mocks при успешной авторизации c#
Здравствуйт, делаю авторизацию c# asp net core mvc, у меня есть Mocks с данными пользователя
New Lis {
date=new DateTime(2002, 12, 12),
name="Иванов Максим Павлович",
personnelNumber=333555,
position="продавец",
salary=new decimal (200.05)
}
И есть Program.cs с авторизацией пользователя(взяла из metanit).
В сроке:
app.Map("/", [Authorize]() => $"Hello World!");
У меня то что выводится на страницу при успешной авторизации, как сделать чтоб выводил не текст а данные пользователя из Mocks?
P.S.В c# не особо разбираюсь по этому могу не правильно делать авторизацию вообще, но это единственное что нашла.
using Microsoft.AspNetCore.Authentication.Cookies;
using System.Security.Claims;
using Microsoft.AspNetCore.Authentication;
var builder = WebApplication.CreateBuilder();
// условная бд с пользователями
var people = new List<Person>
{
new Person("[email protected]", "12345"),
new Person("[email protected]", "55555")
};
// аутентификация с помощью куки
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options => options.LoginPath = "/login");
builder.Services.AddAuthorization();
var app = builder.Build();
app.UseAuthentication(); // добавление middleware аутентификации
app.UseAuthorization(); // добавление middleware авторизации
app.MapGet("/login", async (HttpContext context) =>
{
context.Response.ContentType = "text/html; charset=utf-8";
// html-форма для ввода логина/пароля
string loginForm = @"<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<title>METANIT.COM</title>
</head>
<body>
<h2>Login Form</h2>
<form method='post'>
<p>
<label>Email</label><br />
<input name='email' />
</p>
<p>
<label>Password</label><br />
<input type='password' name='password' />
</p>
<input type='submit' value='Login' />
</form>
</body>
</html>";
await context.Response.WriteAsync(loginForm);
});
app.MapPost("/login", async (string? returnUrl, HttpContext context) =>
{
// получаем из формы email и пароль
var form = context.Request.Form;
// если email и/или пароль не установлены, посылаем статусный код ошибки 400
if (!form.ContainsKey("email") || !form.ContainsKey("password"))
return Results.BadRequest("Email и/или пароль не установлены");
string email = form["email"];
string password = form["password"];
// находим пользователя
Person? person = people.FirstOrDefault(p => p.Email == email && p.Password == password);
// если пользователь не найден, отправляем статусный код 401
if (person is null) return Results.Unauthorized();
var claims = new List<Claim> { new Claim(ClaimTypes.Name, person.Email) };
// создаем объект ClaimsIdentity
ClaimsIdentity claimsIdentity = new ClaimsIdentity(claims, "Cookies");
// установка аутентификационных куки
await context.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity));
return Results.Redirect(returnUrl??"/");
});
app.MapGet("/logout", async (HttpContext context) =>
{
await context.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
return Results.Redirect("/login");
});
app.Map("/", [Authorize]() => $"Hello World!");
app.Run();
record class Person(string Email, string Password);