2012-09-11 74 views
0

參照This questionScottGu's Documentation,我已成功爲我的網站的會員資料頁面路由了一個Url。Url路由查詢

我的頁面重定向~/page/MemberName~/page/Default.aspx,其中用戶MemberName要求信息。
直到現在,這工作得很好。

我需要一種方法,現在允許用戶編輯他們的數據,並希望像~/page/MemberName/Private這樣訪問它。 Private標籤會告訴用戶可以編輯其內容的頁面。

+0

你不能設置用戶角色並提供編輯權限嗎? –

+0

如果您使用的是MVC,則可以設置爲您的控制操作或將DataAnnotation屬性[Authorize]讀取[此鏈接]設置爲類(http://msdn.microsoft.com/zh-cn/library/system.componentmodel.dataannotations。 authorizationattribute.authorize%28v = vs.91%29.aspx)和[Membership and Authorization](http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-7 ) – Gabrik

+0

我使用自己的基於SQL的授權,並將使用它來引用我的頁面上的數據。 – TheGeekZn

回答

0

雖然我會考慮做什麼@huMpty duMpty建議和使用角色爲此。

你只需要設置你的路線來包含URL中的額外信息。

routes.MapPageRoute("SalesRoute", 
    "page/{MemberName}/{ExtraData}", 
    "~/Default.aspx"); 

,然後訪問它,就像你會成員名稱:如果你想確保只有「私人」

Page.RouteData.Values["ExtraData"]; 

是不斷傳遞,您可以通過一個路由添加約束的過載。

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

值得一提的是,你可能要測試這個漂亮的以及你可能最終得到一個過於嚴格的路由規則。

+0

我改變了route.MapPageRoute(「」,「Page/{address}/{data}」,「〜/ Page/Default.aspx」);',並添加了'string extraData = Page.RouteData 。.Values [ 「數據」]的ToString();'。 現在,當我嘗試進入/ User/Private時,只要我想要轉到/ User /,並且找不到「資源無法找到」,我就會得到一個「對象引用未設置爲對象的實例。 – TheGeekZn