none
Erro The request failed with HTTP status 401: Unauthorized no asp.net RRS feed

  • Pergunta

  • Galera, bom dia.

    Fis um web service e disponibilizei que na empresa, esse web service irá ser consumido por outras empresas, até aí tranquilo.

    Criei uma página asp.net para simular o lado cliente, porém em qualquer função que eu faça nessa pagina asp.net que esta consumindo o web service, tenho a seguinte mensagem de erro : "The request failed with HTTP status 401: Unauthorized.".

    O que pode ser ? Alguém pode me ajudar ?

    sexta-feira, 3 de maio de 2013 13:22

Todas as Respostas

  • No IIS 7, ativar a autenticação anônima.

    Ou cada usuário terá uma autenticação diferente?

    sexta-feira, 3 de maio de 2013 14:00
  • então o rapaz que cuida dos servidores informou que já esta com autenticação anônima.

    E respondendo a outra pergunta, futuramente cada um terá sua autenticação.

    sexta-feira, 3 de maio de 2013 14:27
  • Beleza vamos ao primeiro passo!

    Posta o código pra gente da uma avaliada rapida!

    valew

    sexta-feira, 3 de maio de 2013 14:46
  • Abaixo o código da página asp.net que fiz: ( é essa que você quer ? )

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Net;
    
    namespace WebApplication1
    {
        public partial class WebForm : System.Web.UI.Page
        {
            DataClassesDataContext data = new DataClassesDataContext();
    
            protected void Page_Load(object sender, EventArgs e)
            {
                Timestamp.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                SSOTimestamp.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
    
                var count = (from dados in data._500WSSESSIONVIVOs
                             select dados).Count();
    
                Count.Text = count.ToString();
            }
    
    
    
            #region RemoveRealm
            private void RemoveRealm()
            {
                try
                {
                    Prov.RemoveRealmInput wbservice = new Prov.RemoveRealmInput();
                    Prov.Provisioning wb = new Prov.Provisioning();
    
                    wbservice.Timestamp = Convert.ToDateTime(Timestamp.Text);
                    wbservice.AdminUserName = AdminUserName.Text;
                    wbservice.AdminPassWord = AdminPassWord.Text;
                    wbservice.RealmName = RealmName.Text;
    
                    wb.RemoveRealm(wbservice);
                }
                catch (Exception ex)
                {
                    Retorno.Text = ("Erro: " + ex);
                }
            }
            #endregion
    
            #region RemoveUser
            private void RemoveUser()
            {
                try
                {
                    Prov.RemoveUserInput wbservice = new Prov.RemoveUserInput();
                    Prov.Provisioning wb = new Prov.Provisioning();
    
                    wbservice.Timestamp = Convert.ToDateTime(Timestamp.Text);
                    wbservice.AdminUserName = AdminUserName.Text;
                    wbservice.AdminPassWord = AdminPassWord.Text;
                    wbservice.RealmName = RealmName.Text;
                    wbservice.UserName = UserName.Text;
    
                    wb.RemoveUser(wbservice);
                }
                catch (Exception ex)
                {
                    Retorno.Text = ("Erro: " + ex);
                }
            }
            #endregion
    
            #region UpdateUser
            private void UpdateUser()
            {
                try
                {
                    Prov.UpdateUserInput wbservice = new Prov.UpdateUserInput();
                    Prov.Provisioning wb = new Prov.Provisioning();
    
                    wbservice.Timestamp = Convert.ToDateTime(Timestamp.Text);
                    wbservice.AdminUserName = AdminUserName.Text;
                    wbservice.AdminPassWord = AdminPassWord.Text;
                    wbservice.RealmName = RealmName.Text;
                    wbservice.FirstName = FirstName.Text;
                    wbservice.LastName = LastName.Text;
                    wbservice.Email = Email.Text;
                    wbservice.RoleName = RoleName.Text;
                    wbservice.UserName = UserName.Text;
                    wbservice.PassWord = PassWord.Text;
                    wbservice.CustomFields = CustomFields.Text;
    
                    wb.UpdateUser(wbservice);
                }
                catch (Exception ex)
                {
                    Retorno.Text = ("Erro: " + ex);
                }
            }
            #endregion
    
            #region InsertRealm
            private void InsertRealm()
            {
                try
                {
                    Prov.InsertRealmInput wbservice = new Prov.InsertRealmInput();
                    Prov.Provisioning wb = new Prov.Provisioning();
    
                    wbservice.Timestamp = Convert.ToDateTime(Timestamp.Text);
                    wbservice.AdminUserName = AdminUserName.Text;
                    wbservice.AdminPassWord = AdminPassWord.Text;
                    wbservice.RealmName = RealmName.Text;
    
                    wb.InsertRealm(wbservice);
                }
                catch (Exception ex)
                {
                    Retorno.Text = ("Erro: " + ex);
                }
            }
            #endregion
    
            #region InsertUser
            private void InsertUser()
            {
                try
                {
                    Prov.InsertUserInput wbservice = new Prov.InsertUserInput();
                    wbservice.Timestamp = Convert.ToDateTime(Timestamp.Text);
                    wbservice.AdminUserName = AdminUserName.Text;
                    wbservice.AdminPassWord = AdminPassWord.Text;
                    wbservice.RealmName = RealmName.Text;
                    wbservice.FirstName = FirstName.Text;
                    wbservice.LastName = LastName.Text;
                    wbservice.Email = Email.Text;
                    wbservice.RoleName = RoleName.Text;
                    wbservice.UserName = UserName.Text;
                    wbservice.PassWord = PassWord.Text;
                    wbservice.Valor = decimal.Parse(Valor.Text);
                    wbservice.Plano = int.Parse(Plano.Text);
                    wbservice.Quantidade = int.Parse(Quantidade.Text);
    
                    Prov.Provisioning wb = new Prov.Provisioning();
                    wb.InsertUser(wbservice);
    
                    Retorno.Text = "Arquivo .XML gerado com sucesso";
                }
                catch
                {
                    Retorno.Text = "Erro ao gerar arquivo .XML";
                }
            }
            #endregion
    
            #region Verificar
            protected void Verificar_Click(object sender, EventArgs e)
            {
                try
                {
                    //myWebService.Credentials = System.Net CredentialCache . DefaultCredentials
                    SSO.LoginInput login = new SSO.LoginInput();
    
                    login.Timestamp = Convert.ToDateTime(SSOTimestamp.Text);
                    login.RealmName = SSORealmName.Text;
                    login.UserName = SSOLogin.Text;
                    login.PassWord = SSOPassword.Text;
    
                    SSO.LoginOutput lOut = new SSO.LoginOutput();
    
                    SSO.SSOService lg = new SSO.SSOService();
                    lOut = lg.Login(login);
    
                    SID.Text = lOut.SessionId;
                    ValidTO.Text = lOut.ValidTo.ToString();
    
                    preecherGrid();
                }
    
                catch (Exception ex)
                {
                    Retorno.Text = ex.ToString();
                }
            }
            #endregion
    
            private void preecherGrid()
            {
                var dados = from usuario in data._500WSSESSIONVIVOs
                            select usuario;
    
                gvdados.DataSource = dados;
                gvdados.DataBind();
                gvdados.Visible = true;
            }
    
            protected void gvdados_PageIndexChanging(object sender, GridViewPageEventArgs e)
            {
                gvdados.PageIndex = e.NewPageIndex;
                preecherGrid();
            }
    
            protected void btnExecutar_Click(object sender, EventArgs e)
            {
                if (ddlescolha.SelectedValue == "InsertRealm")
                {
                    InsertRealm();
                }
                if (ddlescolha.SelectedValue == "InsertUser")
                {
                    InsertUser();
                }
                if (ddlescolha.SelectedValue == "UpdateUser")
                {
                    UpdateUser();
                }
                if (ddlescolha.SelectedValue == "RemoveUser")
                {
                    RemoveUser();
                }
                if (ddlescolha.SelectedValue == "RemoveRealm")
                {
                    RemoveRealm();
                }
            }
    
        }
    }

    sexta-feira, 3 de maio de 2013 15:09
  • Cara para vamos ao 1º passo vc precisa testar seu webservice e verificar se realmente ele funciona como esperado.

    Obs: para acesso externos dos seus métodos não podemos esquecer as seguintes linhas de código.

    Ex.

    using System;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Serialization;
    using EN = Gerenciador.EN;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using System.Configuration;
    
    namespace Gerenciador.WS
    {
        [WebService(Namespace = "http://services.com.br/ws.asmx", Description = "WebService")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        public class WS : System.Web.Services.WebService
        {
    
    
    
    
    
    
    
    [WebMethod(Description = "Autentica o usuário")]
    public EN.UsuarioDetalhe AutenticarUsuario(String usuario, String senha){}
    
    }


    2º - faça a referencia do ws em seu projeto.

    Obs: Pode ser que precise de alguma configuração no webconfig, mas acho que ao referenciar seu ws a ferramenta de programação se encarrega de fazelas.

    tente fazer acessar seus métodos!


    quarta-feira, 8 de maio de 2013 13:18
  • Cara para vamos ao 1º passo vc precisa testar seu webservice e verificar se realmente ele funciona como esperado.

    Obs: para acesso externos dos seus métodos não podemos esquecer as seguintes linhas de código.

    Ex.

    using System;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Serialization;
    using EN = Gerenciador.EN;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using System.Configuration;
    
    namespace Gerenciador.WS
    {
        [WebService(Namespace = "http://services.com.br/ws.asmx", Description = "WebService")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        public class WS : System.Web.Services.WebService
        {
    
    
    
    
    
    
    
    [WebMethod(Description = "Autentica o usuário")]
    public EN.UsuarioDetalhe AutenticarUsuario(String usuario, String senha){}
    
    }


    2º - faça a referencia do ws em seu projeto.

    Obs: Pode ser que precise de alguma configuração no webconfig, mas acho que ao referenciar seu ws a ferramenta de programação se encarrega de fazelas.

    tente fazer acessar seus métodos!


    Cara, o erro era no servidor com o IIS, não estava autorizando acesso externo, liberei e funcionou de boas.

    Obrigado pela ajuda e atenção. (y)

    quinta-feira, 9 de maio de 2013 12:51