我要做的基本上是能够输入网址,它会根据那里的用户mysite/username
名将它们重定向到那里的页面( )。mysite/Profle/Default.aspx?username=username
问问题
212 次
1 回答
0
我认为这可能需要的不仅仅是 URL 重写。
由于 and 之间没有真正的区别(可以通过 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 回答