lionab資管物語

關於部落格
這是一個資訊管理, ERP, 3C, 旅遊, 勸敗的分享園地
  • 138688

    累積人氣

  • 0

    今日人氣

    0

    訂閱人氣

ASP.NET的TreeView依權限自動隱藏

前陣子在公司用ASP.Net寫了幾個報表程式給不同的部門使用, 報表放在不同資料夾裡, 且資料夾有用ASP.NET預設功能的權限控管, 但是因為大家的報表都放在同一個TreeView裡, 點選TreeView就可以看到別人的報表選單, 因此想要讓 TreeView可以依不同權限自動隱藏.


經過爬網, 得到解決方案, 記錄如下:
1. 在 web.config 裡, 手動加入以下文字
 <siteMap defaultProvider="AspNetXmlSiteMapProvider" enabled="true">
      <providers>
        <clear/>
        <add siteMapFile="web.sitemap" name="AspNetXmlSiteMapProvider"
             type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral,
                PublicKeyToken=b03f5f7f11d50a3a"
              securityTrimmingEnabled="true" />
      </providers>
  </siteMap>

2. 在 SiteMap 裡的每個 Node 加上  roles="帳號1,帳號2"
,請參考下面藍色字體示範的位置
<siteMap>
  <siteMapNode url="default.aspx" title="首頁"  description="首頁" roles="*" >
    <siteMapNode url="news.aspx" title="最新消息"  description="最新消息" roles="admin" >
      <siteMapNode url="adminnewsAdmin.aspx" title="管理最新消息"  description="管理最新消息" roles="admin" />
    </siteMapNode>
    <siteMapNode url="membernormalReport.aspx" title="業務報表"  description="業務報表" roles="admin,user1,user2" >
      <siteMapNode url="membernormalReport1.aspx" title="業務報表1  description="業務報表1" roles="admin,user1,user2" />
    </siteMapNode>
<siteMapNode url="memtestmemtest.aspx" title="會員測試報表"  description="會員測試報表" roles="admin,TestUser1" >
      <siteMapNode url="memtestwebmemtest.aspx" title="會員測試報表A"  description="會員測試報表A" roles="admin,TestUser1" />
    </siteMapNode>
    <siteMapNode url="AccountmemberFixPd.aspx" title="變更密碼"  description="變更密碼" roles="*" >
  </siteMapNode>
</siteMap>


相簿設定
標籤設定
相簿狀態