asp.net2.0里的角色及权限机制,为我们的开发提供了很大的便利。网上有些朋友问,如何使用这种机制限制sitemap的显示:即对于某些role的user,不显示某些link;或只显示而不让其进入?
其实Msdn里已经详细介绍了,可能是英文不方便查找的原因吧。。。
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_aspnetcon/html/4028528f-e01c-4ae3-bd8d-bb161718fe61.htm
(相应中文msdn地址为:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_aspnetcon/html/4028528f-e01c-4ae3-bd8d-bb161718fe61.htm)
有一点,我也曾经望文生义理解错了,就是:
<siteMap>
<!-- other <siteMapNode> elements -->
<siteMapNode title="Support" description="Support"
url="~/Customers/Support.aspx" roles="Customers" />
</siteMap>
其中的roles="Customers"究竟是什么意思呢?开始我理解为,仅Customers角色的成员可以访问此url。但是错了。。。
它的意思是:假设本来Customers成员连看都看不到此url的,现在可以通过如上写法看见此link了,但是访问不了。
原来,asp.net2.0是通过url就自动知道哪些link应该显示给当前成员,哪些不显示;而通过roles=...可以把link显示出来,但是至于访问不访问得了,就要看具体url的权限设定了。