将管理员页面限制为仅管理员用户

| 我有一个ASP.NET网站。我想将管理文件夹限制为仅此SQL Server表中具有\'Admin Role \'角色的用户:“ 0”具有列“ 1”,“ 2”,“ 3”,“ 4”,“ 5”)。我希望所有用户均可公开访问所有根目录页的其余部分。 我将不会使用ASP.NET成员资格。 仅向管理员用户提供URL(https://www.Website.com/Admin/Login.aspx)。 我在根目录和管理文件夹中都有两个Login.aspx页面。 我试图通过表单身份验证来解决它,但是我无法解决它。 很少有论坛建议创建两个不同的Web.Config文件(一个用于网站的根文件夹,另一个用于管理文件夹),但这对我来说似乎是一种低效的方法。 但是我没有成功解决其他问题。 尽管我尝试在根目录的web.config文件中使用以下命令来执行此操作:
  <location path=\"Admin\">
  <system.web>
<authentication mode=\"Forms\">
      <forms loginUrl=\"/Admin/Login.aspx\" name=\".ASPXFORMSAUTH\" defaultUrl=\"/Admin/Login.aspx\" >
      </forms>
    </authentication>
    <authorization>
    <allow roles=\"administrators\" />
      <allow users=\"admin\" />
      <deny users=\"?\" />
    </authorization> 
    <sessionState mode=\"InProc\" cookieless=\"false\"  timeout=\"20\">
    </sessionState>
    <customErrors defaultRedirect=\"~/Admin/ErrorPages/Error.aspx\" mode=\"On\">
      <error statusCode=\"404\" redirect=\"~/Admin/ErrorPages/Error.aspx\" />
    </customErrors>
    <compilation debug=\"true\">
         <codeSubDirectories>
          <add directoryName=\"CSharp\"/>
          <add directoryName=\"VB\"/>
        </codeSubDirectories>
     </compilation>
    </system.web>
  </location>
对于其余的根页面(公共页面):
<system.web>
    For rest of the root pages (Public Pages)
</system.web>
    
已邀请:
您无需在web.config中添加Admin文件夹。 只需在
configuration
部分的
web.config
中添加以下内容。
<location path=\"Admin\">
    <system.web>
        <authorization>
            <deny users=\"?\"/>
            <allow roles=\"Admin\"/>
            <deny users=\"*\"/>
        </authorization>
    </system.web>
</location>
    

要回复问题请先登录注册