我正在使用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。
但这不是我的情况。
答案 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 +上)。你的流程将是:
www.mypage.com/orgs/org-2/login.aspx
被重写为www.mypage.com/login.aspx
,并且路线值中存储了org-2 www.mypage.com/login.aspx
。这可以避免所有重定向类型问题。