asp.net Url路由不使用表单身份验证

时间:2011-04-18 11:42:01

标签: asp.net forms authentication url-routing

我正在使用最新的功能url路由但它无法正常工作。在代码之前,以下是您必须知道的要点:

  1. 非MVC
  2. 我正在使用表单身份验证,我将用户重定向到login.aspx
  3. 网站托管于IIS6
  4. Dev - VS 2010,.Net 4.0
  5. Webconfig代码:

    <authentication mode="Forms">
        forms name=".COOKIEDEMl" timeout="90" loginUrl="~/User/Login.aspx" defaultUrl="~/index.aspx"/>
    </authentication>
    

    Global.asax代码:

    protected void Application_Start(object sender, EventArgs e)
    {            
        SetRouting(RouteTable.Routes);           
    }
    
    private void SetRouting(RouteCollection routeCollection)
    {
        routeCollection.MapPageRoute("Company",
        "Company/{CompanyName}",
        "~/Asset/RequestForm.aspx", true, new RouteValueDictionary { { "CompanyName", "?CompanyName" } });
    
        routeCollection.MapPageRoute("Deal",
        "Company/{CompanyName}/{DealName}",
        "~/Asset/RequestForm.aspx", true, new RouteValueDictionary { { "DealName", "?DealName" } });
    }
    

    当用户输入网址时,用户不会被重定向到RequestForm.aspx:http://localhost/testprj/company/Gmail/?my deal

1 个答案:

答案 0 :(得分:0)

您无法将查询字符串参数传递到路径中。而是使用路线参数。即不要使用?my-deal,而是使用company / gmail / my-deal

此外,最好不要在URL中使用任何空格。用连字符(不是下划线)替换它们。