首页 文章

重定向请求'ReturnUrl'显示登录页面

提问于
浏览
2

我试图在本地测试对网页的简单更改 . 我正在使用VS 2008和VB.net . 我进入了我想去的页面 . 但它需要登录,所以它正确地带我到登录页面 . 我可以使用测试帐户成功登录 . 然后它重定向到'ReturnUrl',但显示的页面是登录页面,而不是地址栏中列出的正确值 - “ReturnUrl”变量 .

我尝试使用Fiddler2来查看是否有任何问题,但没有 . 它显示重定向到正确的页面,URL是我想要查看的页面,但浏览器(FireFox)中显示的是登录页面 .

以下是重定向页面的代码:

If Request.QueryString("ReturnUrl") = "" Then
    Response.Redirect("profile.aspx")
Else
    Response.Redirect(Request.QueryString("ReturnUrl"))
End If

我检查了ReturnUrl值,它是正确的url . 不会显示任何错误,但会显示“登录”页面,并清除“登录”页面(profile.aspx)的文本框 . 窗口中显示的URL是'ReturnUrl' .

有没有人知道出了什么问题?

2 回答

  • 0

    尝试了很多建议 . 只有这个有效 . 将代码放在default.aspx页面上 .

    Private Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    
        Dim strRedirect As String
    
        strRedirect = Request.QueryString("ReturnUrl")
    
        If (strRedirect <> "") Then
    
            Response.Redirect("~/Default.aspx", True)
    
        End If
    
    End Sub
    
  • 2

    对于任何正在努力解决这个问题的可怜人来说,这对我有用...

    我在本地运行 . 这是关键!在我的代码中,在.Redirect方法调用之前创建了2个cookie:代码如下所示:

    Dim C As HttpCookie
     C = FormsAuthentication.GetAuthCookie(custID.ToString, False)
     C.Domain = "ourdomain.com"
     Response.AppendCookie(C)
    
     Dim C2 As System.Web.HttpCookie = New System.Web.HttpCookie("ProfileUsername", P.UserName)
     C2.Domain = "ourdomain.com"
     Response.AppendCookie(C2)
    

    我需要将.Domain更改为“.localhost” . 它必须在名称中至少有一个点 .

    另外,在web.config文件中,在元素身份验证中 . '模式'是'表格' . 'Forms'的属性是domain =“ . localhost”

    这让我的测试接受了我的测试成员,然后转到我需要测试的部分代码 .

相关问题