使用ASP.NET会员制将用户重定向到多个登录页面

 2023-02-16    331  

问题描述

将用户重定向到登录页面依赖于它们所在的文件夹.我有一个web应用程序,其中包含所有用户和管理站点使用的根目录.

对于需要该站点的经过身份验证功能的人,他们需要登录并重定向到root/login.aspx.但是,当管理员需要登录站点的root/admin/部分时,我希望它们被重定向到root/admin/login.aspx上的登录表单

使用ASP.NET会员制将用户重定向到多个登录页面

<configuration>
      <appSettings/>
      <connectionStrings/>
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </configuration>

我在root/admin目录中有这个文件.我尝试添加以下行,但它会出错.

<authentication>
    <forms defaultUrl="default.aspx" loginUrl="default.aspx"></forms>
  </authentication>

基本上我正在尝试覆盖主应用中存在的DefaultURL和LoginUrl.

推荐答案

需要在web.config中使用<location>元素.您可以使用<location>标记将授权设置应用于单个文件或目录.

<location path="/root">
  <system.web>
      <authentication mode="Forms" >
        <forms name="LoginForm" defaultUrl="default.aspx" 
        loginUrl="/root/login.aspx" protection="Encryption" 
        timeout="30" path="/"/>
      </authentication>
    <authorization>
      <allow users="?" />
    </authorization>
  </system.web>
</location>
<location path="/root/admin">
  <system.web>
    <authentication mode="Forms" >
      <forms name="formName" defaultUrl="login.aspx" 
      loginUrl="/root/admin/login.aspx" protection="Encryption"
      timeout="30" path="/"/>
    </authentication>
    <authorization>
      <allow users="?" />
    </authorization>
  </system.web>
</location>

msdn

集中管理,
设置可以应用于
machine.config文件.设置
machine.config文件定义
机器范围的政策,也可以是
用于应用特定于应用程序的
配置使用<location>
元素.开发人员可以提供
应用程序配置文件
覆盖机器政策的方面.
对于ASP.NET Web应用程序,a
Web.config文件位于
应用程序虚拟根目录
并且可选择在子目录中
在虚拟根下.

如果您想要1个登录位置和不同的访问级别,您可能想要使用角色.

<location path="/root">
  <system.web>
    <authorization>
       <allow roles="admin,root" />/*admin, root is allowed */
       <deny users="*" /> 
   </authorization>
  <system.web>
</location>  

<location path="/root/admin">
  <system.web>
    <authorization>
       <allow roles="admin" />/*admin is allowed */
       <deny users="*" /> 
   </authorization>
  <system.web>
</location>

用户可以属于多个
角色.例如,如果您的网站是一个
讨论论坛,一些用户可能是
在两位成员的角色和
主持人.您可以定义每个角色
有不同的特权
网站,以及在两个角色的用户
然后有两套
特权.

您可以访问所有这些元素
代码级别如果您想
操纵角色/身份验证
以编程方式

Page.User.Identity.Name
Page.User.Identity.IsAuthenticated
Page.User.Identity.AuthenticationType
Page.User.IsInRole("string");

教程

来自rolla教程

asp.net web.config文件demystified

以上所述是小编给大家介绍的使用ASP.NET会员制将用户重定向到多个登录页面,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/33953.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。