Возвращение QueryString в MVC 5 из ReturnUrl - PullRequest
0 голосов
/ 01 января 2019

Если пользователь, скажем, перейдет на целевую страницу и будет перенаправлен на страницу входа, URL будет выглядеть следующим образом:

https://OurDomain.com/HA5/Secure/Login?ReturnUrl=%2FHA5%2FSecure%2FLanding%2F

Я пробовал все возможные варианты, чтобыполучить строку запроса

Request.QueryString ("ReturnUrl") не возвращает ничего

System.Web.HttpContext.Current.Request.Url.PathAndQuery не включает строку запроса.

Чего мне не хватает?

Спасибо

1 Ответ

0 голосов
/ 03 января 2019

Это долгий путь, но единственный метод, который я смог найти, это передать значение через jQuery

 var vPath = window.location.href;
jQuery.ajax({
            url: '@Url.Action("ReturnURL", "Login")',
    type: 'POST',
    data: { FullURL: vPath },
    success: function (response) {
        if (response.indexOf('Invalid') >= 0) {
            //They got here from an old link
            window.location.href = '/secure/redirect/';
        }
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        ModalError(textStatus + " - " + errorThrown);
    }



})

Контроллер (значение сохранено как сеанс)

 <HttpPost()>
    Function ReturnURL(FullURL As String) As ActionResult
        Try
            If FullURL.Contains("ReturnUrl") Then
                Dim vID As Integer = FullURL.IndexOf("=")
                Dim vSub As String = FullURL.Substring(vID + 1)
                Session("ReturnUrl") = vSub.Replace("%2F", "/")
            End If

            Return Json("Success")
        Catch ex As Exception
            EmailError(ex, 53, PageName)
            Return Json("Invalid")
        End Try
    End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...