コントローラーを備えた ASP.NET MVC アプリがあります。このコントローラーのすべてのアクションは、匿名ユーザーがアクセスできます。ただし、ユーザーが認証されている場合は、アクションで何か特別なことをしたいと考えています。現在、何があっても、このアクションのコンテキストでは User.Identity.IsAuthenticated が常に false であることに気付きました。これが私のコードです:
public class MyController : Controller
{
public ActionResult GetProfile(string id)
{
if (User.Identity.IsAuthenticated) {
ViewBag.ShowAuthStuff = true;
} else {
ViewBag.ShowAuthStuff = false;
}
}
}
認証されたユーザーと認証されていないユーザーの両方が同じアクションにアクセスできるようにするにはどうすればよいですか? User.Identify.IsAuthenticated が常に false である理由がわかりません。クッキーを確認しました。ログインすると、次の名前の Cookie があります。
.ASPXAUTH
ただし、アクションにアクセスすると、その Cookie は使用できなくなります。