asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET入门教程 11.3 配置页面级别的授权[2]


发布日期:2021年07月06日
 
ASP.NET入门教程 11.3 配置页面级别的授权[2]

控制页面可见性

可能存在一些情况其中希望允许用户知道页面的存在性即使拒绝用户访问该页面这样可以提供一个链接给用户但当他们单击该链接时在他们可以查看该页面之前提示作为具有足够特权的用户登录为了实现这一点可以将一个roles属性(参见下面代码中添加阴影的行)添加到websitemap文件这确保某些用户可以看到指定页面的链接即使该用户不能够查看页面自身的内容下面是一个示例

<siteMapNode title=Administration url=Admin/Adminaspx

  roles=ReporterOwnerManagerAdministrator>

  <siteMapNode title=Edit News url=Admin/EditNewsaspx

  description=Edit club news

  roles=ReporterOwnerManagerAdministrator />

<siteMapNode title=Schedule Match url=Admin/ScheduleMatchaspx

description=Schedule a Match

  roles=ManagerOwner/>

注意Adminaspx页面上的roles属性声明Reporters Owners Managers和Administrators应该知道Adminaspx页面的存在性将该页面与ScheduleMatchaspx页面进行对比您将看到只有Managers或Owners可以查看能够调度比赛的链接

如果作为Christi登录到站点则是Reporter角色的成员因此即使取消对所有管理页面的访问仍然可以看到Adminaspx和EditNewsaspx页面的链接但不会看到ScheduleMatchasp页面的链接

因为Webconfig文件和websitemap文件中的roles属性合作控制可见性和访问理解它们如何合作的最佳方法是通过示例来查看它们!

对于这个试一试练习确保正在使用Wrox United代码的第章版本出于这个示例的目的稍微修改了提供给这个示例的代码

)首先查看websitemap文件中的代码该文件包含与用于Wrox United应用程序中相同的代码下面是从该文件中提取的代码并且突出显示了roles属性的使用

<siteMapNode title=Fan Club url=FanClubaspx>

  <siteMapNode title=Add Match Report url=FanClub/FanClubMatchReportaspx

  description=Add a match report

  roles=FanClubMember />

<siteMapNode title=Upload Pictures url=FanClub/FanClubPicturesaspx

description=Upload pictures or video of a match

roles=FanClubMember />

  </siteMapNode>

<siteMapNode title=Administration url=Admin/Adminaspx

  roles=ReporterOwnerManagerAdministrator>

  <siteMapNode title=Edit News url=Admin/EditNewsaspx

  description=Edit club news

  roles=ReporterOwnerManagerAdministrator />

<siteMapNode title=Schedule Match url=Admin/ScheduleMatchaspx

description=Schedule a Match

  roles=ManagerOwner/>

<siteMapNode title=Edit Squad url=Admin/EditSquadaspx

description=Edit the players in the squad

roles=Owner/>

<siteMapNode title=Update Score url=Admin/MatchScoreaspx

description=Edit the score for a match in progress

roles=Reporter/>

<siteMapNode title=Match Report url=Admin/MatchReportaspx

description=Upload or edit a match report

roles=Reporter />

<siteMapNode title=Shop url=Admin/UpdateProductsaspx

  description=Update products

  roles=Administrator />

<siteMapNode title=User Admin url=Admin/UserAdminaspx

  description=Administer users

  roles=Administrator />

</siteMapNode>

[] [] [] [] [] []

               

上一篇:ASP.NET+XML打造网络硬盘

下一篇:ASP.NET入门教程 11.3 配置页面级别的授权[4]