あなたは、このような限られた時間の間、匿名ブラウジングを可能にするためのカスタム認証を実装すること
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(
new AuthorizeAttributeWithAnonTimeoutAttribute
{
// By example, 10 minutes
AnonymousMinutesTimeout = 10
});
// Your other filters
...
}
そしてAllowAnonymousAttributeであなたのコントローラやアクションを飾ることを忘れないでください:
[AllowAnonymous]
public class YourController
{
}
それとも
public class YourController
{
[AllowAnonymous]
public ActionResult YourAction()
{
}
}
あなたはまた、定義した場合、カスタムのコントローラやアクションに直接属性を承認置いてもよいことは、世界的にあなたに合っていません:
// By example, 10 minutes anonymous browsing allowed.
[AuthorizeAttributeWithAnonTimeout(AnonymousMinutesTimeout = 10)]
public class YourController
{
}
この実装は匿名のタイムアウトを確保しませんのでご注意ください。ハッカーは、彼が望む限り、それを克服し、匿名で閲覧することができる。ブラウザツールではCookieの削除が可能なので、新しいタイムアウトで簡単に開始できます。
匿名のタイムアウトを確保することは非常に困難です。これは、ユーザーが匿名であるためです。あなたは匿名ユーザーを特定し、タイムアウトサーバー側を追跡しようとする可能性があります。
しかし、あなたはおそらく多くの問題に直面するでしょう:同じIPアドレスでブラウズしたり、単一のインターネット接続を持たないため異なるIP間を切り替える企業ユーザー...
実際には、[AllowAnonymous]が本当に欲しいですが、1回の訪問では限られた時間だけ、サイト全体が対象となります。 –