gaurav.s23 Ответов: 2

Как перенаправить пользователя из вызова веб-метода


У меня есть веб-метод, я хочу, чтобы функциональность этого метода выполнялась только в том случае, если пользователь является авторизованным пользователем, но если нет, то я хочу перенаправить вызов веб-метода на unauthorizedpage.

Как мне это сделать ?

Я не могу использовать это, так как веб-метод статичен.
Response.Redirect("~/NotAuthorized.aspx")


Что я уже пробовал:

If oUser.IsAuthorizedMyAppUser = False Then
                       Response.Redirect("~/NotAuthorized.aspx")
        End If

2 Ответов

Рейтинг:
13

F-ES Sitecore

Вам нужно будет обработать это в своем вызывающем коде, вернув данные из вашего метода, которые сообщат вашему js, что он должен перенаправить;

[WebMethod]
public static object MyMethod()
{
    return new { Success = false, RedirectUrl = VirtualPathUtility.ToAbsolute("~/NotAuthorized.aspx")};
}


Тогда ваш js будет выглядеть примерно так

$.ajax({
    type: "POST",
    url: "WebForm1.aspx/MyMethod",
    contentType: "application/json",
    data: {},
    dataType: "json",
    success: function (data) {
        var r = data.d;
        if (r.Success == false){
            window.location.href = r.RedirectUrl;
        }
    }


[no name]

Благодарю вас сэр

Рейтинг:
1

Member 11272618

<script type="text/javascript">
      function Logout() {
          $.ajax({
              type: "POST",
              url: "test.aspx/mymethod",
              contentType: "application/json; charset=utf-8",
              data: JSON.stringify({}),
              async: false,
              dataType: "json",
              success: function (data) {
                  window.location.href = data.d;
              },
              error: function (e) {
                  alert('Error in method Process is : ' + e.statusText);
              }
          });
          return false;
      }
  </script>


CHill60

Необъяснимый дамп кода-это не решение проблемы. Вы не объяснили, почему ваш метод лучше, чем принятое решение 2-летней давности. Вы также не пытались помочь ОП, указывая, что делать. Очень бедный.