У меня есть две страницы входа в приложение.
- Одна из них - страница входа администратора
- Вторая - это общедоступная c страница входа.
Обе таблицы базы данных, которыми управляют разные таблицы.
Я использую тип заявки для входа в систему.
var user =new AdminUserViewModel();
// create claims for user's username
var claims = new List<Claim>();
if (!string.IsNullOrEmpty(user.UserName))
{
claims.Add(new Claim(ClaimTypes.Name, user.UserName, ClaimValueTypes.String, "Admin"));
claims.Add(new Claim("UserId", user.AdminUserId.ToString(), ClaimValueTypes.Integer64, "Admin"));
claims.Add(new Claim("AdminUserPermissionMapping", JsonConvert.SerializeObject(user.AdminUserPermissions), ClaimValueTypes.String, "Admin"));
}
// create principal for the current authentication scheme
var userIdentity = new ClaimsIdentity(claims, "Authentication");
var userPrincipal = new ClaimsPrincipal(userIdentity);
// set value indicating whether session is persisted and the time at which the authentication was issued
var authenticationProperties = new AuthenticationProperties
{
IsPersistent = isPersistent,
IssuedUtc = DateTime.Now
};
// sign in
// await httpContextAccessor.HttpContext.SignInAsync(WebAuthenticationDefaults.AuthenticationScheme, userPrincipal, authenticationProperties);
await httpContextAccessor.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, userPrincipal, authenticationProperties);