仅限管理员用户访问管理页面

发布于 2024-11-09 04:27:29 字数 1717 浏览 0 评论 0原文

我有一个 ASP.NET 网站。我想将管理文件夹限制为仅在此 SQL Server 表中具有“管理角色”的用户:tbl_Users_Admin 具有列 UIDPWD名称角色状态)。我希望任何用户都可以公开访问其余的所有根页面。

我不会使用 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>

I have an ASP.NET Website. I want to restrict the Admin Folder to only users who are of 'Admin Role' in this SQL Server Table: tbl_Users_Admin having columns UID, PWD, Name, Role, Status). The rest of all the root pages I want to be publicly accessible by any user.

I will not be using ASP.NET Membership.

Admin User is just given the URL (https://www.Website.com/Admin/Login.aspx).

I have two Login.aspx pages in the root as well as in the Admin Folder.

I tried to resolve it through the Forms Authentication, but I am unable to resolve it.

Few forums suggested to create two different Web.Config files (one for root folder of website and another for Admin Folder), but it seems to be an inefficient way to me.

But I have not been successful to resolve it otherwise.

Although I have tried to do this using the as follows in the web.config file at root:

  <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>

And for the rest of the root pages (Public Pages):

<system.web>
    For rest of the root pages (Public Pages)
</system.web>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三月梨花 2024-11-16 04:27:29

您不需要在 web.config 中添加 Admin 文件夹。

只需在 configuration 部分下的 web.config 中添加以下内容即可。

<location path="Admin">
    <system.web>
        <authorization>
            <deny users="?"/>
            <allow roles="Admin"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>

You don't need to add the Admin folder in the web.config.

Just add the following in the web.config under the configuration section.

<location path="Admin">
    <system.web>
        <authorization>
            <deny users="?"/>
            <allow roles="Admin"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文