私は問題を理解するために丸一日を費やしましたが、できませんでした: ここに問題があります: アクションで私は出力キャッシュ属性を持っています:
[OutputCache(Duration = 600, VaryByParam = "*", VaryByCustom = "User")]
また、次のように Global.asax を書き直しました。
public override string GetVaryByCustomString(HttpContext context, string arg)
{
if (arg == "User")
{
return "User=" + context.User.Identity.Name;
}
return base.GetVaryByCustomString(context, arg);
}
しかし、最初にログインすると値がキャッシュされ、ログアウトして別のユーザーとして再度ログインしようとすると、以前にキャッシュされた値が表示されます。デバッグ中に、Identity.Name が最初のユーザーに対して正しい結果を返すことを確認しました。これは、2 番目のユーザーに対しては「admin」であり、「kate」です。