locked
[問題] 請問 SiteMap 權限(Role)設定問題 RRS feed

  • 問題

  •  

    各位先進大家好!

     

    想請問一下,關於SiteMap權限的設定是否有其限制在?

     

    <siteMapNode url="~/index.aspx">
     <siteMapNode title="Administrator" roles="Administrator">
       <siteMapNode title="MemberSetting" roles="Administrator" />
       <siteMapNode title="RoleSetting" roles="Administrator" />
       <siteMapNode title="SiteMapSetting" roles="Administrator" />
     </siteMapNode>
     <siteMapNode url="" title="Manager" roles="User, Member">
       <siteMapNode title="CompanySetting" roles="User" />
       <siteMapNode title="Test" roles="Member" />
     </siteMapNode>
    </siteMapNode>

     

    以上是SiteMap簡易的內容!

     

    問題是在藍色的節點部分!

    在Manager區裡有二個子節點!

    該Manager區允許User, Member這二個Role存取!

    而該區底下的CompanySetting節點,希望只能被User這個Role存取!

    而Test節點,希望只能被Member這個Role存取!

    但,在Manager底下的二個節點都可以被User, Member這二個Role的Users存取!

     

    ps. 在web.config有設定securityTrimmingEnabled="true"

     

    請問該怎麼設定才能達到依Role的不同而給予不同的權限呢?

     

    謝謝 ^^

     

    2008年10月17日 上午 09:08

解答

  • SiteMap 只是路徑提示功能,權限設定請使用 URL 授權法。

     

    2008年10月17日 上午 09:30
    版主

所有回覆

  • SiteMap 只是路徑提示功能,權限設定請使用 URL 授權法。

     

    2008年10月17日 上午 09:30
    版主
  • 感謝小朱大的回答!

     

    SiteMap 應該可以依role來提示相關的路徑啊 ~

    http://www.dotblogs.com.tw/mis2000lab/archive/2008/05/06/3802.aspx

    上面這篇教學有說可以依照不同帳號、不同權限,看到不同的導覽列

    試過也可以,不過,就是在同一層底下再分不同的權限就沒辦法達到 @@"

    主要是希望SiteMap能顯示/不顯示相關的路徑(透過Role的設定)

     

    權限設定主要不會透過SiteMap來處理,只要能達到不顯示相關的路徑即可!

     

    不過,小朱大您提到的 URL 授權法,能否說明一下呢?

     

     

    2008年10月17日 上午 09:59
  • 像這種我還是認為自己寫比較好。

    SiteMap 只是一種 navigation 的控制項,用它做權限控制老實說有點奇怪 ...

     

    URL 授權法,可在 Google 搜尋 "URL 授權" 或 "URL authorization" 即可找到一堆文章。

     

    2008年10月17日 上午 10:08
    版主
  •  

    感謝小朱大的回覆 ^^

     

    URL 授權法還蠻實用的!感謝 ^^

     

     

    若SiteMap能依Role的設定來達到 顯示/不顯示 路徑的話,

    這樣就能透過SiteMap來處理較大的彈性!

    (因目前是將sitemap的資料存在db裡,若能達到 顯示/不顯示 路徑的功能,是可以省下很多的工)

    (權限還是需要另外的處理就是了 @@")

     

    如果SiteMap沒辦法在同一區裡再細分role的話,那,最後還是必需要自已來處理這部分!

    自已處理的彈性比較大!

     

    不知是不是自已的設定出了問題...而造成這樣的情況 @@"

     

    不過,看了msdn:

    http://msdn.microsoft.com/zh-tw/library/ms178428.aspx

    roles 屬性明確設定為 siteMapNode 項目:請注意,除非節點可以安全地向所有用戶端顯示,否則不可以將 roles 屬性設定為萬用字元或星號 (*)。當使用者屬於屬性列出的其中一個角色時,只要有 roles 屬性,便可以讓 ASP.NET 略過與 siteMapNode 相關聯的 URL 授權

     

    這麼說的話,這是算SiteMap的限制嗎? Orz
    2008年10月17日 上午 10:27