在.net 中依据页的角色验证方式产生相匹配的菜单
生活随笔
收集整理的這篇文章主要介紹了
在.net 中依据页的角色验证方式产生相匹配的菜单
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
看了很多人都是自己程序獲得用戶的角色權限,再判斷并編寫相應的功能菜單,其實.net 中可以允許開發者自己拼合這些功能;
廢話不說,網上也有很多這樣的資料,但我感覺說教太多,自己來簡單歸納一下方便給大家!
注:站點必須為asp.net 標準驗證方式。自定義cookie認證,自定義Session方式的可以一邊涼快去了!
具體條件
???1、為站點準備SiteMap
??????在站點根目錄建立一個Web.sitemap 配置文件,例:
<siteMap?xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"?>
????<siteMapNode?url="~/Default.aspx"?title="首頁"??description=""?>
????????<siteMapNode?url="~/Register.aspx"?title="注冊"??description=""?/>
????????<siteMapNode?url="~/Login.aspx"?title="登陸"??description=""?/>
??????<siteMapNode?url="~/Album/Default.aspx"?title="個人管理"?description="">
????????<siteMapNode?url="~/Album/AlbumManager.aspx"?title="相冊管理"?description=""?/>
????????<siteMapNode?url="~/Album/ImageUploader.aspx"?title="圖片上傳"?description=""?/>
????????<siteMapNode?url="~/Album/ImageManager.aspx"?title="圖片管理"?description=""?/>
??????</siteMapNode>
????</siteMapNode>
</siteMap>
??? 注意:第一級節點只能有1個,其他節點就隨意了,可以把全站所有有關的頁都編寫進來,也可以只寫有權限控制相關的頁,這個是可以繼承的。
???安裝有MSDN2005的朋友可以看此內容:ASP.NET 站點地圖
??????ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_aspnetcon/html/6b85a558-1df8-44cf-bea6-62e61bcc8d20.htm
??
???2、為文件或目錄設置訪問權限
??????在相關目錄的Web.config 中設置就可以,跟平時設置一樣
??????<authorization>
????????<!--?當前目錄由Album?角色的用戶才可以訪問?-->
????????<allow?roles="Album"?/>
????????<deny?users?="*"/>
??????</authorization>
????</system.web>
??
??<location?path="ImageUploader.aspx">
????<system.web>
??????<authorization>
????????<!--?ImageUploader.aspx?只能帶Blog角色的用戶才可以訪問?-->
????????<allow?roles="Blog"/>
????????<deny?users?="*"/>
??????</authorization>
????</system.web>
? </location>
???3、在根Web.config 中啟用站點地圖角色過濾配置,想省事可以直接復制粘貼
??<system.web>
????<siteMap?defaultProvider="XmlSiteMapProvider"?enabled="true">
??????<providers>
????????<add?name="XmlSiteMapProvider"
??????????description="Default?SiteMap?provider."
??????????type="System.Web.XmlSiteMapProvider?"
??????????siteMapFile="Web.sitemap"
??????????securityTrimmingEnabled="true"?/>
??????</providers>
????</siteMap>
??</system.web>
就這樣就OK了!測試一把~~!
???1、拖一個Menu 控件到頁面上,并新建一個數據源類型為“站點地圖”類型,名字隨意。點OK就配置好了!
????測試用例1:(沒有登陸以前,只顯示根目錄下誰都可以訪問的文件)
????
???測試用例2:(登陸后,具備Album 角色但不具備Blog 角色能力)
???
???測試用例3:(登陸后,具備Album角色也具備Blog 角色)
???
完成收工,回家了,顯然這樣的方式,大量減少的代碼,而且把頁面文件或目錄跟角色綁定起來,實在是非常方便的。
還想多說點,但MM在家病倒了,所以明天再說吧!
轉載于:https://www.cnblogs.com/SUNBOY/archive/2006/10/11/526587.html
總結
以上是生活随笔為你收集整理的在.net 中依据页的角色验证方式产生相匹配的菜单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.net生成缩略图
- 下一篇: 基于RBAC模型的通用权限管理系统的设计