2017-07-18 8 views
0

私はASP.NET 4.5.2 Webフォームアプリケーションを作成しました。最近は、thisの記事に従ったロールベースのフォーム認証と承認を実装しました。web.sitemapを使用せずにASP.NETロールベースのフォーム認証と承認を行うことは可能ですか?

この記事では、作者は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> 

私はそれインターネット上で見つけたものから、ここで私は記事に従うことによって作られたweb.sitemapファイルがあります<asp:Menu>コントロール項目に値を設定するために使用されます。しかし、私は<asp:Menu>コントロールを使用していません。

私の最初の質問は、web.sitemapは承認に影響しますか? <provider>セクションに変更がありましたが、web.sitemapファイルを使用できませんか?

私の2番目の質問は、~/javascript:;は、第3の親であるSiteMapNodeとは何ですか?

答えて

1

いいえ、サイトマップは承認に影響しません。サイトマップでは、ロールを追加してメニューにセキュリティトリミングを追加できます。

<authorization>要素をweb.configファイルに含めることで、Webサイト(またはその一部)へのアクセスを制限することができます。良い概観はこれを提供します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のサイトマップの詳細については、linkを参照してください。

関連する問題