Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net url路由_Asp.net_Vb.net - Fatal编程技术网

asp.net url路由

asp.net url路由,asp.net,vb.net,Asp.net,Vb.net,我想做的是基本上能够输入网址mysite/username,然后根据那里的用户名将它们重定向到那里的页面(mysite/Profle/Default.aspx?username=username)。我认为这可能需要的不仅仅是URL重写 由于mysite/username和mysite/directory之间没有真正的区别(可通过urlrewrite regex区分),因此您可能需要执行类似的操作 在global.asax中,重写BeginRequest函数。检查请求路径是否与已知用户名匹配。如果

我想做的是基本上能够输入网址
mysite/username
,然后根据那里的用户名将它们重定向到那里的页面(
mysite/Profle/Default.aspx?username=username
)。

我认为这可能需要的不仅仅是URL重写

由于
mysite/username
mysite/directory
之间没有真正的区别(可通过urlrewrite regex区分),因此您可能需要执行类似的操作

在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));
        }
    }
受保护的无效应用程序\u BeginRequest(对象发送方,事件参数e)
{
var url=HttpContext.Current.Request.RawUrl;
IEnumerable userNames=GetKnownUserNames();//从存储库中获取已知用户名
if(userNames.Contains(url))
{
重定向(String.Format(“mysite/Profle/Default.aspx?username={0}”,url));
}
}

您可能需要进行一些调整,以使比较工作正常,但这样做就可以了。

您是要求直接在浏览器url中键入用户名,还是在页面的UI(文本框)中键入用户名?进入浏览器url,因此,如果用户键入mysite/luke,我将进入页面mysite/profile/Default.aspx?username=lukeMaybe,您需要重新编写url来帮助您。请参阅此以获取一些帮助。。。