2017-07-18 14 views
0

我製作了一個ASP.NET 4.5.2網頁表單應用程序。最近,我通過以下this文章實施了基於角色的表單身份驗證和授權。是否有可能具有基於ASP.NET角色的表單身份驗證和授權沒有web.sitemap?

在本文中,作者使用了web.sitemap文件。下面是我通過下面的文章作出的Web.sitemap文件:

<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
    <siteMapNode url="~/Home.aspx" title="Home" description="Home Page"> 
    <siteMapNode url="" title="Patients and Physician" description="Patient and Physician Details"> 
     <siteMapNode url="~/EnrollPatient.aspx" title="Enroll Patient" description="EnrollPatient page" /> 
     <siteMapNode url="~/EnterPatientDiagnosis.aspx" title="Enter Patient Diagnosis" description="Enter Patient Diagnosis Page" /> 
     <siteMapNode url="ViewPatientInformation.aspx" title="View Patient Information" description="View Patient Information Page" /> 
     <siteMapNode url="~/SearchPhysician.aspx" title="Search Physician" description="Search Physician Page" /> 
    </siteMapNode> 
    <siteMapNode url="~/javascript:;" title="Admin" description="AdminPanel"> 
     <siteMapNode url="~/Admin/AddPhysician.aspx" title="Add Physician" description="Add Physician Page" /> 
     <siteMapNode url="~/Admin/AdminPanel.aspx" title="Admin Panel" description="User Moditification" /> 
    </siteMapNode> 
    <siteMapNode url="~/" title="Login/Register" description="Login Or Register"> 
     <siteMapNode url="~/Login.aspx" title="Login" description="Login" /> 
     <siteMapNode url="~/Register.aspx" title="Register" description="Register" /> 
    </siteMapNode> 
    </siteMapNode> 
</siteMap> 

這是我的web.config文件的一部分:

<system.web> 
    <authentication mode="Forms"> 
    <forms defaultUrl="~/Home.aspx" loginUrl="~/login.aspx" slidingExpiration="true" timeout="2880"></forms> 
    </authentication> 
    <authorization> 
    <deny users="?"/> 
    </authorization> 
    <siteMap enabled ="true" defaultProvider="SiteMap"> 
    <providers> 
     <add name="SiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web.sitemap" securityTrimmingEnabled="true" /> 
    </providers> 
    </siteMap> 
    <system.web> 

從我在互聯網上發現,用於填充<asp:Menu>控制項目。雖然,我沒有使用任何<asp:Menu>控件。

我的第一個問題是,web.sitemap對授權有什麼影響嗎?通過<provider>部分的一些更改,我能不能使用web.sitemap文件嗎?

我的第二個問題是,什麼是~/javascript:;在做第三個父母SiteMapNode

回答

1

不,網站地圖對授權沒有影響。在站點地圖中,您可以通過添加角色將安全修整添加到菜單中。

您可以通過在web.config文件中包含<authorization>元素來限制對您網站(或其中的一部分)的訪問。一個好的概述提供了link。下面的代碼片段只授予管理員訪問該文件夾:

<authorization>  
     <allow roles="Administrators" />  
     <deny users="*"/>  
    </authorization>  

因此,爲了保護您的網站,使用<authorization>元素。如果你不需要的地圖,你可以從你的web.config刪除此欄目中刪除:

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

此外,您還可以刪除你的站點地圖文件。有關ASP.NET中的Sitemaps的詳細信息,請參見link