簡體   English   中英

沒有web.sitemap,是否可以具有基於ASP.NET角色的表單身份驗證和授權?

[英]Is it Possible to have ASP.NET role based form authentication and authorization without web.sitemap?

我已經制作了一個ASP.NET 4.5.2 Web表單應用程序。 最近我通過以下實現基於角色形式認證和授權文章。

在本文中,作者使用了一個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

否,站點地圖對授權沒有影響。 在站點地圖中,您可以通過添加角色在菜單上添加安全性修飾。

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

  <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中站點地圖的詳細信息,請參見此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM