0

私は次のように使用しapp.UseCookieAuthenticationています(単なる例です)。

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@user.com")
};
var claimsIdentity = new ClaimsIdentity(claimCollection);
var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);

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

したがって、生成された Cookie には、ユーザーの役割に関する情報が含まれます。

ここで質問です: そのように生成された Cookie は安全ですか? つまり、ASP.NET は何らかの方法で暗号化するため、エンド ユーザーは手動で変更できないため、たとえばサーバーはユーザーが管理者であると認識しますか? ユーザーが Cookie を変更すると、サーバーは Cookie が破損していることに気付きますか?

4

1 に答える 1