私は次のように使用し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 が破損していることに気付きますか?