使用ASP.NET成员身份的多个登录页

使用ASP.NET成员身份的多个登录页,asp.net,asp.net-membership,Asp.net,Asp.net Membership,我正在尝试为正在创建的ASP.NET网站创建两个ASP.NET成员登录页 结构如下: / - Anonymous Access for page off root /registeredUser - Must be part of RegisteredUser Role /registeredUser/login.aspx - Login page Registered Users /admin - Must be part of AdminUser Role /admin/login.

我正在尝试为正在创建的ASP.NET网站创建两个ASP.NET成员登录页

结构如下:

/ - Anonymous Access for page off root

/registeredUser - Must be part of RegisteredUser Role
/registeredUser/login.aspx - Login page Registered Users  

/admin - Must be part of AdminUser Role
/admin/login.aspx - Login page Admin Users
另一个人问了这个问题,建议使用web.confg中的位置标签:

但是我在位置路径中收到与使用正斜杠/相关的错误。我删除了前斜杠,忽略了安全规则


因此,我的问题是,在IIS中不创建单独的应用程序的情况下,我可以使用ASP.NET成员身份拥有多个登录页吗?

使用一个登录页和调用控件


这将需要单个url,并且在aspx登录页上可以方便地自定义显示。我提出的解决方案是在页面加载事件中将用户从默认登录页重定向到其他登录页:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  Dim returnURL As String = Request.QueryString("ReturnUrl")

  If returnURL <> String.Empty AndAlso returnURL.Contains("registeredUser") Then
     Response.Redirect("~/registeredUser/login.aspx?" & AntiXss.UrlEncode(returnURL))
  End If
End Sub
Protected Sub Page_Load(ByVal sender作为对象,ByVal e作为System.EventArgs)处理Me.Load
Dim returnURL As String=Request.QueryString(“returnURL”)
如果returnURL String.Empty和returnURL.Contains(“registeredUser”),则
Response.Redirect(“~/registeredUser/login.aspx?”&AntiXss.UrlEncode(returnURL))
如果结束
端接头

这是基于David Qain的建议:

要求有两个登录页面。这将允许重定向到每个部分的登录页面,而不是共享页面。