Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

@fabiosantosrj

login formsauthentication ajax

Recommended Posts

Prezados,

 

Preciso da ajuda de vocês. Já perdi o meu fim de semana por causa dessa besteira.

 

Eu tenho uma Web Forms Application com .NetFramework 4.0 funcionando. Porém, ao colocar o formsauthentication eu passei a ter um problema.

 

Todas as páginas abrem corretamente e são direcionadas para a login.aspx corretamente por estar configurado no web.config assim.

Então na tela de login.aspx, criei uma tela com campos para usuario, senha e botão de execução direcionando para um jquery que faz um ajax para validação da autenticação.

 

O problema está quando eu chamo o ajax. Se eu não tenho no web.config o < authentication > o ajax funciona perfeito, executa o código e volta o json perfeito. Mas, só de colocar o < authentication > no web.config e o ajax já passa a dar o erro 401.

 

Esse é quem recebe a chamada do Ajax e que não dá nenhum erro quando não tem o web.config < authentication>

[WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ExecutaForm(string login, string senha)
        {
            dynamic message;
            try
            {
                API.Autenticacao.Usuario usuario = new API.Autenticacao.Usuario();
                Model.Pessoa pessoa = usuario.Login(login, senha);
                if (pessoa != null){
                    //cria a autenticação e grava no cookie de login
                    System.Web.Security.FormsAuthentication.SetAuthCookie(pessoa.IdPessoa.ToString(), true);
                    string urlRedirect = System.Web.Security.FormsAuthentication.GetRedirectUrl(pessoa.IdPessoa.ToString(), true);
                    message = new { msg = "OK", urlRedirect = urlRedirect };
                }
                else
                    message = new { msg = "Usuário inválido" };
            }
            catch (Exception ex)
            {
                message = new { msg = ex.ToString() };
            }
            return JsonConvert.SerializeObject(message);
        }

Esse é o meu web.config

<system.web>
<authentication mode="Forms">
      <forms loginUrl="login.aspx" name="ASPXFORMSAUTH"></forms>
    </authentication>
    <authorization>
      <deny users="?" />
    </authorization>
<customErrors mode="Off" />
<webServices>
<protocols>
<add name="HttpGet" />
<add name="HttpPost" />
<add name="HttpSoap" />
</protocols>
</webServices>

</system.web>

Com a chamada no web.config, passo a ter o erro abaixo no Ajax:

{"Message":"Falha ao autenticar.","StackTrace":null,"ExceptionType":"System.InvalidOperationException"}

E esse é o header do ajax:

Remote Address:[::1]:49436
Request URL:http://localhost:49436/login.aspx/ExecutaForm
Request Method:POST
Status Code:401 Unauthorized
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip, deflate
Accept-Language:pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.2,gl;q=0.2
Cache-Control:no-cache
Connection:keep-alive
Content-Length:34
Content-Type:application/json; charset=UTF-8
Cookie:ASPSESSIONIDCQDDRDST=PIPLMIICOBGMKOKKENKMDDKD; ASPSESSIONIDASCDSCST=HIPBPJJCEJFJNGCOCPLPJPED; cupomExpirando=; ASPSESSIONIDAQBDSDST=NFOPIDKCCJNKGHHBBBLMNIAN; ASPSESSIONIDCSADTCSS=AJKHMMKCFDJKMAKCEDCDKGJF; ASPSESSIONIDCQBDTCSS=ELCJLMLCEBNMFMLJGKBEMMOG; ASPSESSIONIDQSCDRBRQ=EAFLKANCJLMGPLIOHMGLCJLN; ASPSESSIONIDSSCBSBRR=BBNHCPADEAPDIPPFBPFMLFDF; ASPSESSIONIDAQCDTDSS=NPCPMEDDGAFCHMKIMPFMCEMC; ASPSESSIONIDCSCDRDQT=KCPBIJODFKJGFNDJDNOJBAMF; _pk_id.2.1fff=8e3df146d3e028de.1420746552.5.1421075216.1420812119.; ASPSESSIONIDASACQDQS=GALLKFICKPCIGBHFALPLGJND; __AntiXsrfToken=e8136d5eaaa644c3bd465930a2a1d71f; ASPSESSIONIDQCDSATBB=GMHFJCKCNFFPIDHHIALEONAH; ASPSESSIONIDQACTATBA=JLNNLPKCKIJJKJMBBGBOKDGN; ASPSESSIONIDQADRDSAB=LFLHEELCCMACECFNENOGDFGA; ASPSESSIONIDSABQBSAA=BOPHDBMCGDJHEIEHIHPIODAN; ASPSESSIONIDSCDQDTAA=AFMLOMMCPCNPCLCMAKLIMLJL; ASPSESSIONIDSCBSDRAB=FMINCGNCGJDKJFAGPCLIFEDP; ASP.NET_SessionId=mhwya0ncz1eidblj3kj4xnfx; ASPSESSIONIDQCBTCQAA=LFPDJGFDFHMBBEABBIFEEOLO; ASPSESSIONIDSADRBSAA=HNJBBAPDIKEDBNNEONMJCOIE; ASPSESSIONIDQACQDQCB=MIAJAOGAHLJOHMPJIEFOJPGL; ASPSESSIONIDSCDTDRAA=MHHDKOMAKMHGEFKBDDKKHJGF; ASPSESSIONIDSCDSBRCB=BLEBEFBBBMDKBPFKHCFNPPNG; ASPSESSIONIDSCBSCSAA=OAGJGADBCEPDAJJJICGDLLFC; ASPSESSIONIDSCCQDQBA=IIGLLMDBDPFBLPIOFECLHNGN; ASPSESSIONIDSCBQCRDA=BOPNJAEBBFDCAAPJFIHFMDCA; ASPSESSIONIDQCDQCTAB=HEJLNLEBGMLCKLEOKAOLLJDB; ASPSESSIONIDSACSBQCB=CGGJODGBJCDAAMJBIPEBMJLJ; ASPSESSIONIDQADRBTBB=NMCFLKGBEELINEEIIALCANKO; ASPSESSIONIDQADRBTCB=EEMPENHBBFILBCCIPIAHKILH; ASPSESSIONIDQAARAQCB=PPLNJEIBBEIMJMAKNEPLECDM; ASPSESSIONIDQCDQBRCA=BJDNKKIBIAIBICJIADFIKJPB; ASPSESSIONIDSCQQSDTD=CHMNIBBDKGEAMNADGHOHGNBB; ASPSESSIONIDSAQSTDTC=MBFJDKBDKNEEHFOGLDDGEBKM; ASPSESSIONIDSAQTTCTD=GGANEDCDCFAHEMICAGHKNGJI; ASPSESSIONIDSCTSQDSC=PHIPPGCDLHEJKCFCAJPJIONG; ASPSESSIONIDCQQQRBRB=BAMNKIDDDLKHNPCFOJCFPAKL; ASPSESSIONIDCSQQRARA=BBDFDMDDINIFLJLIIDMKKAJP; ASPSESSIONIDCQQQRARB=ALDFDBEDIBMKKGFFGHJGCFIL; ASPSESSIONIDSCSSRCTD=PCKDPGGDKKPACKMHKGCAONIF; ASPSESSIONIDSCQTSCTC=DOCPJAKDDGJGHOENJHNOEDCG; ASPSESSIONIDAQSTQBQB=FFNNKEKDHIPCBLNIJCODCGEM; ASPSESSIONIDCSQSRBQB=EMKNGFLDHPJBAJIEEHBOKHLL; ASPSESSIONIDCSQTRBRB=DJFBCNMDGAOEIAPFCMCBJIAE; ASPSESSIONIDSCTTTDTD=IKKPMCNDNINPCLGAHBLIFGIK; ASPSESSIONIDCSTQSBRB=BEPDMPNDJBFAKKFININNOHHO; ASPSESSIONIDQARRSDTD=NIPHFBKAPKJGGNNLDCBDODJJ; ASPSESSIONIDCQQQSARA=MGDFJLMALINLPBJEJPAEIMAP; ASPSESSIONIDCQRDSTSB=FDABNDLBBCGBDMGGAHKGGBDE; ASPSESSIONIDAQRCTSSB=JNHJMOLBEHOJGACEBGPBPMBF; ASPSESSIONIDAQTCTSQD=BMAJFHOBOOFNAILLNMAJIJEI; ASPSESSIONIDCQTDRTRD=CDEDFKOBJNDKFFOPCJNKFCLA; ASPSESSIONIDAQRARQSC=JECPOOOBABDAAFCIMJHOBMPO; midialoja%5Flocalhost=AfiliadoUsuario=&id%5Ftransacao=; ASPSESSIONIDCSSASSTB=EOLPHMBCBPAEIGIKDKKONDMF
Host:localhost:49436
Origin:http://localhost:49436
Pragma:no-cache
Referer:http://localhost:49436/login.aspx?ReturnUrl=%2f
User-Agent:Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36
X-Requested-With:XMLHttpRequest
Request Payloadview source
{login: "fabio", senha: "123456"}
login: "fabio"
senha: "123456"
Response Headersview source
Cache-Control:private
Content-Length:103
Content-Type:application/json; charset=utf-8
Date:Sun, 01 Feb 2015 20:41:28 GMT
jsonerror:true
Server:Microsoft-IIS/8.0
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?QzpcQWxmYXNlcnZlclxQcm9qZXRvc1xDbGllbnRlc1xjaG9pY2VcSW50cmFuZXRcUHJvamV0b1xTaXRlXGxvZ2luLmFzcHhcRXhlY3V0YUZvcm0=?=

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.