私がやろうとしているのは、基本的にWebアドレスに入力できることであり、ユーザー名に従ってmysite/username
そこのページ()にリダイレクトされます。mysite/Profle/Default.aspx?username=username
1 に答える
0
これはURLの書き換え以上のものを必要とするかもしれないと思います。
との間には実際の違い(urlrewrite正規表現で区別できる)がないため、次のようなことを行う必要がある場合がありますmysite/username
。mysite/directory
global.asaxで、BeginRequest関数をオーバーライドします。リクエストパスが既知のユーザー名と一致するかどうかを確認します。含まれている場合は、リダイレクトします。そうでない場合は、リクエストを自然に続行します。サイト内のディレクトリと一致するユーザー名がある場合、これにより問題が発生する可能性があることに注意してください。また、悪意のあるユーザーがログインページにリダイレクトする名前を学習することで、サイトのユーザー名を見つける方法を(時間はかかりますが)明らかにします。
protected void Application_BeginRequest(object sender, EventArgs e)
{
var url = HttpContext.Current.Request.RawUrl;
IEnumerable<string> userNames = GetKnownUserNames(); //Get known user names from your repository
if (userNames.Contains(url))
{
Response.Redirect(String.Format("mysite/Profle/Default.aspx?username={0}", url));
}
}
比較を正しく機能させるには、微調整が必要になる場合がありますが、これでうまくいきます。
于 2012-04-09T14:52:49.083 に答える