ASP.NET Webmethod всегда возвращает 401 - PullRequest
3 голосов
/ 06 июля 2010

Заболел с безумием разрешения asp.net ... На этот раз я просто не могу AJAX-CALL любой веб-метод или я просто получаю:

{"Message":"Authentication failed.","StackTrace":null,"ExceptionType":"System.InvalidOperationException"}

Код:

<WebMethod(True)> _
    Public Function Login(ByVal usuario As String, ByVal senha As String) As Boolean
        [lots of validations]
        If (con.Connection.State = ConnectionState.Open) Then
            Return True
        Else
            Return False
        End If
    End Function

JQUERY CALL:

$("#btnEnviar").click(function() {
            $('#login').hide();
            $('#ajaxLoader').fadeIn();
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "Login.aspx/Login",
                data: "{'usuario':'" + $('#txtUsuario').val() + "','senha':'" + $('#txtSenha').val() + "'}",
                dataType: "json",
                dataFilter: function(data) {
                    var msg = eval('(' + data + ')');
                    if (msg.hasOwnProperty('d'))
                        return msg.d;
                    else
                        return msg;
                },
                success: function(msg) {
                    if (msg.UsuarioValido == '1') {
                        top.location = "Home.aspx"
                    }
                    else {
                        $('#ajaxLoader').hide();
                        $('#login').fadeIn();
                    }
                }
        });

Есть некоторые ошибки по поводу успеха, которые я знаю. ЭТО НЕ ПРОБЛЕМА СЕЙЧАС. Консоль Firebug всегда возвращает 401 Несанкционированный, когда я пытаюсь вызвать Ajax.

Любой

1 Ответ

10 голосов
/ 06 июля 2010
  1. Веб-метод должен быть общим (vb) / статическим (C #), если вы получаете ОШИБКУ 500, пометьте свой метод как Общий / Статический, и все готово.

  2. Об ошибке 401: Если вы используете проверку подлинности с помощью форм, не забудьте разрешить анонимный доступ к вашей странице входа в систему, выполнив это на своем web.config:

    <location path="Login.aspx">
      <system.web>
        <authorization>
          <allow users="*"/>
        </authorization>
      </system.web>
    </location>
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...