【发布时间】:2013-05-25 07:15:21
【问题描述】:
我有一个自定义登录页面,我在其中对来自数据库的用户进行身份验证。作为回报,我得到用户是否经过身份验证以及用户的角色。 例如,用户属于角色 X、角色 Y 或角色 Z
我想根据用户的角色显示不同的菜单项。 站点地图文件在这种情况下是否有帮助。因为它确实具有角色属性 但是我应该如何将信息传递到用户属于该角色的下一页。我正在构建这样的站点地图....
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
<siteMapNode url="" title="Top" description="" roles="*">
<siteMapNode url="GeneralUser.aspx" title="General User" description="" roles="GeneralUser" />
<siteMapNode url="PowerUser.aspx" title="Power User" description="" roles="X" />
</siteMapNode>
</siteMap>
【问题讨论】:
-
您可以在每个页面加载时绑定菜单,也可以在会话中以您喜欢的任何方式保存菜单..
-
是的,这当然是一个选项,可以为不同的角色提供不同的站点地图,然后根据角色绑定它。但我想知道我们可以在页面加载中设置角色,其余的由站点地图处理。你说什么?
-
我不是在谈论为每个角色设置不同的站点地图,您可以只使用站点地图并在绑定时使用 MenuItemDataBound 事件来隐藏不需要的项目。
-
嗯 @Ratna 这可能是我之前所说的在 Page_Init() 中设置角色,然后其余的将由站点地图处理