2016-09-21 11 views
0

Я использую app.UseCookieAuthentication следующим образом (простой пример);Является ли cookie, обеспечиваемое промежуточным программным обеспечением CookieAuthentication безопасным?

app.UseCookieAuthentication(new CookieAuthenticationOptions() 
{ 
    AuthenticationScheme = "MyAuthScheme", 
    AutomaticAuthenticate = true, 
}); 

Тогда где-то я вручную создавать ClaimsPrincipal и подписывать пользователя:

var claimCollection = new List<Claim>() 
{ 
    new Claim(ClaimTypes.Name, "First user"), 
    new Claim(ClaimTypes.Role, "User"), 
    new Claim(ClaimTypes.Email, "first[email protected]") 
}; 
var claimsIdentity = new ClaimsIdentity(claimCollection); 
var claimsPrincipal = new ClaimsPrincipal(claimsIdentity); 

await context.Authentication.SignInAsync("MyAuthScheme", claimsPrincipal); 

Так генерируется куки будут содержать информацию о ролях пользователей.

Теперь вопрос: является ли такой сгенерированный cookie безопасным? Я имею в виду, что ASP.NET шифрует его так или иначе, поэтому конечный пользователь не может вручную изменить его таким образом, например, сервер будет думать, что пользователь является администратором? Будет ли сервер уведомлять, что cookie поврежден, когда пользователь его модифицирует?

ответ

1

Да.

Да, это зашифровано, поэтому вы не можете видеть содержимое.

Да, он подписан, поэтому будет обнаружено несанкционированное вмешательство.

 Смежные вопросы

  • Нет связанных вопросов^_^