2012-10-05 6 views
0

응용 프로그램 내에서 다양한 사용자 수준에 대해 정의 된 세 가지 역할을 가진 ASP.NET C# 응용 프로그램에서 작업하고 있습니다. "User", " 관리자 "및"관리자 "로 구성됩니다. 대부분의 사용자 및 관리자 작업을 완료했으며 관리자 섹션에 페이지를 추가했습니다. 그러나 "관리자"섹션이 내 TreeView 탐색 메뉴에 표시되지 않습니다. 나는 훌륭한 블로그 기사 인 http://blogs.ipona.com/davids/archive/2009/01/12/8554.aspx을 읽었으며 나는 그가 정의한 모든 "규칙"을 따르고있는 것처럼 보이지만 여전히 작동하지는 않습니다. 여기 ASP.NET Web.Sitemap - 하나의 역할이 탐색 메뉴에 표시되지 않는 경우

<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"> 
    <siteMapNode url="#"> 
    <siteMapNode url="~/User/Default.aspx" roles="Admin,Manager,User" title="Home" /> 
    <siteMapNode url="~/User/About.aspx" roles="Admin,Manager,User" title="About" description="About this application" /> 
    <siteMapNode roles="Admin,Manager,User" title="User Functions"> 
     <siteMapNode url="~/User/CreateNewIPR.aspx" roles="Admin,Manager,User" title="Create New IPR" description="Enter a new IPR" /> 
     <siteMapNode url="~/User/ListIPRs.aspx" roles="Admin,Manager,User" title="List IPRs" description="List all the IPRs you have entered" /> 
     <siteMapNode url="~/User/ViewIPRDetails.aspx" roles="Admin,Manager,User" title="View IPR Details" description="View details of an IPR" /> 
    </siteMapNode> 
    <siteMapNode roles="Admin" title="Admin Functions"> 
     <siteMapNode url="~/Admin/ManageApprovalLevels.aspx" roles="Admin" title="Manage Approval Levels" 
       description="Allows administrators to add/edit approval levels" /> 
     <siteMapNode url="~/Admin/ManageUsers.aspx" roles="Admin" title="Manage Users &amp; Roles" description="Allows administrators to add users to roles and add new users to the system" /> 
     <siteMapNode url="~/Admin/ManageApprovers.aspx" roles="Admin" title="Manage Approvers" description="Allows administrators to manage approvers" /> 
    </siteMapNode> 
    <siteMapNode roles="Manager" title="Manager Functions"> 
     <siteMapNode url="~/Manager/ApprovalsList.aspx" roles="Manager" title="Approve Purchase Requests" description="Allows managers to approve purchase requests" /> 
    </siteMapNode> 
    </siteMapNode> 
</siteMap> 

는 "관리자"폴더의 Web.config의 :

가 여기 내 Web.sitemap 파일의

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
    <authorization> 
     <allow roles="Admin,Manager" /> 
     <deny users="*" /> 
    </authorization> 
    </system.web> 
</configuration> 

그리고 마지막으로, 여기에 내가 루트에 사이트 맵 공급자를 정의 어디 Web.config :

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true"> 
    <providers> 
    <add name="XmlSiteMapProvider" description="Default SiteMap provider" type="System.Web.XmlSiteMapProvider" siteMapFile="IPRTracker.sitemap" securityTrimmingEnabled="true" /> 
    </providers> 
</siteMap> 

여기에는 내가 얻은 내용이 나와 있습니다 (Manager 섹션이 없습니다) : 나는 완전히하지 않는 그것을 이해하지만

Screen capture showing NavMenu

답변

0

글쎄, 그것은 매우 간단 뭔가 밝혀졌다. Web.sitemap에 다음 줄 :

<siteMapNode roles="Manager" title="Manager Functions"> 
필요

로 변경 될 : 내가 함께 테스트하고있어 사용자 ID는 세 가지 역할의 구성원이 경우에도

<siteMapNode roles="Admin,Manager" title="Manager Functions"> 

(관리자, 관리자 , 및 사용자).