Inquiridor
Erro The request failed with HTTP status 401: Unauthorized no asp.net

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 ?
Todas as Respostas
-
-
-
-
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(); } } } }
-
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 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)