asp.net授权许多不同的文件夹

时间:2012-10-14 09:44:52

标签: c# asp.net logging

我正在使用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(文件夹) - >不经认证不应该是可以访问的

当只有两个不同的文件夹时,我已经阅读了一些解决方案,通常它们具有不同的角色(管理员和非管理员),例如Different authentication forms for different folders

但这不是我的情况。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

您可以使用URL重写(只要您在.NET 3.5 SP1 +上)。你的流程将是:

  1. www.mypage.com/orgs/org-2/login.aspx被重写为www.mypage.com/login.aspx,并且路线值中存储了org-2
  2. login.aspx使用该组织的所有自定义颜色方案,徽标等信息查询数据库并相应地配置页面(或者如果路由值为空,则显示默认值)
  3. 所有实际登录代码都在一页上,即www.mypage.com/login.aspx。这可以避免所有重定向类型问题。