セッションを使用すると、この問題を解決できます。
HttpModule を構築し、 context_BeginRequest で現在の URL を取得できます。後で条件付きでデフォルト ページにリダイレクトします。
public class RedirectionModule : IHttpModule
{
void context_BeginRequest(object sender, EventArgs e)
{
//this user already already eligible to go inside page ?
if (Session["eligible-to-go-inside"] == null)
{
//new user
//check current request url is default.aspx
//if not forward to default page
}
}
}
default.aspx ページで、ユーザーが内部ページに移動するための要件を完全に満たしている場合 (ログインなど)、設定します。
Session["eligible-to-go-inside"] = "yes";