0

我正在使用 asp.net (c#)。

问题:

我需要允许用户从不同的页面登录:

www.mypage.com/login.aspx
www.mypage.com/orgs/org-1/login.aspx
www.mypage.com/orgs/org-2/login.aspx
www.mypage.com/orgs/org-3/login.aspx

...其中 1、2、3 等。组织 ID。

目前,当我打开 www.mypage.com/orgs/org-1/login.aspx 时,用户被重定向到 www.mypage.com/login.aspx

整个故事: 我有一个不是我编写的应用程序。它有一个主登录页面 (www.mypage.com/login.aspx)。但它也有许多不同的登录页面 - 每个组织都有自己的登录页面,位于文件夹 Orgs/Org-ID/login.aspx 中。这是必要的,因为组织希望在其登录页面上有不同的配色方案、徽标、一些额外信息、自定义欢迎声明和其他自定义内容。

我以前没有做过,但现在的方案如下: 1) www.mypage.com/login.aspx 是基本登录页面;每个人都可以从这个页面登录。有用。2) 有一个文件 OrgLogin.aspx(注意CodeBehind="Login.aspx.cs" !!!!),其中包含一些组织的自定义登录页面。它与 Login.aspx 略有不同,但使用相同的 CodeBehind。

3) 当应用程序管理员从应用程序界面创建新组织时,OrgLogin.aspx 文件被复制到 www.mypage.com/orgs/org-1/login.aspx 的位置其中 1 是组织 ID,它会更改)并重命名将此文件添加到 Login.aspx。然后,组织管理员可以根据需要自定义每个 login.aspx 文件。如果他们不想要,则使用默认页面。

到目前为止很清楚,但以下内容不起作用:4)有必要允许用户从不同的页面登录:www.mypage.com/orgs/org-1/login.aspx -> 从适当的位置显示 login.aspx文件夹(根文件夹中的 Login.aspx.cs 是 CodeBehind)www.mypage.com/orgs/org-2/login.aspx ...目前,当我导航到 www.mypage.com/orgs/org-2/login .aspx 系统将用户重定向到 www.mypage.com/login.aspx?returnurl....

编辑 文件夹的完整结构如下: orgs/org- /login.aspx -> 应该可以访问而无需重定向到 root 登录 orgs/org- /forgotpassword.aspx -> 应该可以访问而无需重定向到 root forgotpassword orgs/org - /document(文件夹)-> 未经身份验证不得访问 orgs/org- /images(文件夹)-> 未经身份验证不得访问

当只有两个不同的文件夹并且通常它们具有不同的角色(管理员和非管理员)时,我已经阅读了一些解决方案,例如,不同文件夹的不同身份验证表单

但这不是我的情况。

4

2 回答 2

1

如果您的orgs/org-*文件夹仅包含该OrgLogin.aspx页面,您可以放置​​一个web.config文件以允许访问该页面/避免重定向。这个web.config文件的内容是

<?xml version="1.0"?>
<configuration>    
    <system.web>
        <authorization>             
            <allow users="*"/>
        </authorization>
    </system.web>    
</configuration

更新

要允许特定页面,您可以像这样使用位置标签

<configuration>
   <location path="Login.aspx">
      <system.web>
         <authorization>
            <allow users="*"/>
         </authorization>
      </system.web>
   </location>       
</configuration>
于 2012-10-14T12:50:33.357 回答
0

您可以为此使用 URL 重写(只要您在 .NET 3.5 SP1 + 上)。您的流程将遵循以下原则:

  1. www.mypage.com/orgs/org-2/login.aspxwww.mypage.com/login.aspx用存储在路由值中的 org-2重写
  2. login.aspx 使用该组织的所有自定义配色方案、徽标等信息查询数据库并适当地配置页面(或者如果路由值为空,则显示默认值)
  3. 所有实际的登录代码都在一个页面上,即www.mypage.com/login.aspx。这避免了所有重定向类型问题。
于 2012-10-14T10:09:26.277 回答