C# 带查询的Url路由

C# 带查询的Url路由,c#,asp.net,url-routing,C#,Asp.net,Url Routing,关于和,我已成功地为我的站点的成员配置文件页面路由了一个Url 我的页面将~/page/MemberName重定向到~/page/Default.aspx,该页面使用成员名称请求信息。 到目前为止,这种方法一直运作良好 我现在需要一种方法来允许用户编辑他们的数据,并希望它像~/page/MemberName/Private一样被访问。“代码>私下< /COD>标签将告诉页面用户可以编辑他们的内容。,我会考虑做什么建议和使用角色。 您只需要设置您的路由,以便在URL中包含额外的信息 routes.

关于和,我已成功地为我的站点的成员配置文件页面路由了一个Url

我的页面将
~/page/MemberName
重定向到
~/page/Default.aspx
,该页面使用
成员名称
请求信息。
到目前为止,这种方法一直运作良好


我现在需要一种方法来允许用户编辑他们的数据,并希望它像
~/page/MemberName/Private
一样被访问。“代码>私下< /COD>标签将告诉页面用户可以编辑他们的内容。

,我会考虑做什么建议和使用角色。

您只需要设置您的路由,以便在URL中包含额外的信息

routes.MapPageRoute("SalesRoute",
    "page/{MemberName}/{ExtraData}",
    "~/Default.aspx");
然后像访问MemberName一样访问它:

Page.RouteData.Values["ExtraData"];
如果要确保只传入“Private”,可以通过其中一个重载向路由添加约束

routes.MapPageRoute("SalesRoute",
    "page/{MemberName}/{ExtraData}",
    "~/Default.aspx",
    false,
    new RouteValueDictionary(),
    new RouteValueDictionary{
       { "ExtraData", "[P|p]rivate" }
    });

值得注意的是,您可能希望很好地测试这一点,因为您可能会得到一个过于严格的路由规则。

您不能设置用户角色并从中提供编辑权限吗?如果您使用MVC,您可以设置您的controlle操作或将DataAnnotation属性[Authority]分类为read,我使用自己的基于SQL的授权,我已经将路由更改为
routes.MapPageRoute(“,”page/{address}/{data}“,“~/page/Default.aspx”),并添加了
string extraData=Page.RouteData.Values[“data”].ToString()。现在我得到了一个
对象引用,没有设置为对象的实例。
只要我想转到/User/,就可以找到
资源。
当我尝试转到/User/Private时。