Прежде всего позвольте мне извиниться, если то, что я здесь прошу, не имеет особого смысла. Кроме того, спасибо за ваше время. Это мой первый раз, когда я поправляюсь здесь, поэтому я надеюсь, что я делаю это правильно.
Я занимаюсь разработкой в Asp. Net уже год, и мы использовали сессию для сохранения постоянных пользовательских данных. на протяжении всего сеанса пользователя (например, электронная почта, имя, телефон, компания и т. д. c ..). И если я не ошибаюсь, что информация была скрыта, потому что не в кулинарии ie и не видна в браузере.
Теперь мы начинаем разрабатывать в. Net Core 3.1 и я ' Я должен восстановить логин, используя эту новую платформу, при условии, что постоянные пользовательские данные не хранятся в кулинарии ie или не видны для браузера, они должны быть безопасными и скрытыми.
Я посмотрел в. Net Core Session и Auth Cook ie, но для обоих этих вариантов мы создаем куки, которые хранят всю эту информацию, в обоих этих подходах информация безопасна или уязвима?
Через некоторое время я наткнулся на эту область в документации Microsoft: Введение в идентификацию на ASP. NET Ядро
У меня вопрос, если я go с этим Подход может ли я выполнить sh то, что я хочу, иметь постоянные пользовательские данные не в кулинарии ie или не видны для браузера. Если то, что я пытаюсь выполнить, sh невозможно, и нужно использовать cook ie, есть ли способ сохранить эти данные в безопасности и безопасности? Или есть другой подход к обеспечению безопасности данных в течение сеанса и их невидимости для браузера?
РЕДАКТИРОВАТЬ: Чтобы привести более практический пример, в нашей панели инструментов мы будем фильтровать данные в зависимости от пользователя, точнее его Тип, Компания, Площадь и Канал, это атрибуты каждого пользователя. Когда пользователь входит в систему и перенаправляется на панель мониторинга, он видит только те данные, которые имеют те же атрибуты, что и он. В Asp. Net все, что мне нужно было сделать, это сохранить эту информацию в момент входа в систему в сессии, а затем извлечь ее, когда они мне понадобятся. В. Net Core, я смог сделать это двумя разными способами, первым было использовать «HttpContext.Session.SetString()
» и «HttpContext.Session.GetString()
» для сохранения и извлечения необходимых мне данных. Второй способ состоял в том, чтобы передать данные в Заявки, когда я выполняю «HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), authenticationProperties);
». Оба этих подхода позволяют мне получать нужную информацию и использовать ее. Но все данные находятся внутри файлов cookie, видимых в браузере.
Но для того, что я понимаю. Net Ядро не позволяет сохранять такие данные на стороне сервера, поэтому возможно зашифровать auth cook ie, поэтому данные остаются защищенными.
Мой код для входа в систему пользователя выглядит следующим образом:
После аутентификации пользователя я запускаю его, чтобы войти в систему и создать auth cook ie.
string userGUID = Guid.NewGuid().ToString();
List<Claim> claims = new List<Claim>()
{
new Claim(ClaimTypes.NameIdentifier, userGUID),
new Claim(ClaimTypes.Role, "Admin"),
new Claim("Company", "User Company"),
new Claim("Area", "User Area"),
new Claim("Channel", "User Channel")
};
if (claims != null && claims.Count > 0)
{
var claimsIdentity = new ClaimsIdentity(
claims, CookieAuthenticationDefaults.AuthenticationScheme);
AuthenticationProperties authenticationProperties = new AuthenticationProperties
{
IsPersistent = false,
AllowRefresh = false,
ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(30)
};
_httpContextAccessor.HttpContext.SignInAsync(
CookieAuthenticationDefaults.AuthenticationScheme,
new ClaimsPrincipal(claimsIdentity),
authenticationProperties);
}
Еще раз спасибо за ваше время и, пожалуйста, скажите мне, могу ли я что-то сделать, чтобы прояснить этот вопрос.