要根据会员角色和当前目录更改目录,可以使用下面的示例代码:
Protected Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
' 获取当前用户的角色
Dim userRoles() As String = Roles.GetRolesForUser()
' 获取当前目录
Dim currentDirectory As String = HttpContext.Current.Request.Url.AbsolutePath
' 根据会员角色和当前目录更改目录
Select Case True
Case userRoles.Contains("Admin")
' 如果角色为Admin,则跳转到Admin目录
Response.Redirect("~/Admin/SearchPage.aspx")
Case userRoles.Contains("Member") AndAlso currentDirectory.Contains("Admin")
' 如果角色为Member,并且当前目录为Admin,则跳转到Member目录
Response.Redirect("~/Member/SearchPage.aspx")
Case userRoles.Contains("Member") AndAlso currentDirectory.Contains("Public")
' 如果角色为Member,并且当前目录为Public,则跳转到Public目录
Response.Redirect("~/Public/SearchPage.aspx")
Case Else
' 默认情况下,跳转到默认目录
Response.Redirect("~/Default.aspx")
End Select
End Sub
在上述示例中,我们使用了Roles.GetRolesForUser()
方法来获取当前用户的角色。然后,我们使用HttpContext.Current.Request.Url.AbsolutePath
来获取当前目录的绝对路径。根据会员角色和当前目录,我们使用Response.Redirect()
方法将用户重定向到相应的目录页面。如果没有匹配的角色或目录,则默认跳转到默认目录。
请注意,上述示例中的目录名称和页面名称仅作示例。您需要根据实际需求修改这些名称。