Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

freaklori

Enviar Credenciais Automaticamente

Mensagens Recomendadas

freaklori    0
freaklori

Boas,

Estou aqui com uma dificuldade em enviar as credenciais para um Webservice (EXTERIOR)

Ou seja, cada vez que tento aceder ao WebService exterior não me estar sempre a surgir o uma dialog box onde tenho que introduzir o nome de utilizador e palavra passe.

Ah uma ligeira nota estou a usar a framework 2.0 VB , dado que ja vi por ai umas soluções recorrendo a SilverLight e framework 3.5, algo que estou expressamente proibido de utilizar (maldido cliente lol)

O Codigo que tenho é o que se segue mas que nao está a fazer nada...

Public Shared Sub EnviarCredenciais(ByVal Site As String)
        
        Dim C As NetworkCredential

        C = New NetworkCredential("username", "password", "http://webservice_exterior.com")
        Dim Cache As CredentialCache = New CredentialCache()
        Cache.Add(New Uri("http://webservice_exterior.com"), "teste", C)

End Sub
        

Cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hellblazer    0
Hellblazer

Dim myCred As New NetworkCredential(SecurelyStoredUserName,SecurelyStoredPassword,SecurelyStoredDomain )

Dim myCache As New CredentialCache()

myCache.Add(New Uri("www.contoso.com"), "Basic", myCred)
myCache.Add(New Uri("app.contoso.com"), "Basic", myCred)

Dim wr As WebRequest = WebRequest.Create("www.contoso.com")
wr.Credentials = myCache

é o exemplo que está no site da Microsoft  :)

portanto acho que te está a faltar ai qualquer coisa :(

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
inginheiiro    1
inginheiiro
System.Net.CredentialCache myCredentials = new System.Net.CredentialCache();
System.Net.NetworkCredential netCred = new System.Net.NetworkCredential("LOGIN","PWD");
                                               
MyWebService.ws w = new MyWebService.ws())                
myCredentials.Add(new Uri(w.Url), "Ntlm", netCred);
w.Credentials = myCredentials;

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
freaklori    0
freaklori

Bom dia,

Vou testar e já comunico

Quanto ao codigo postado pelo inginheiiro eu penso que nao se adequa ao meu caso dado que estou a instaciar um webservice local, coisa que eu nao tenho dado que é um webservice exterior.

Cumps, e ate já

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
freaklori    0
freaklori

  Public Shared Sub EnviarCredenciais(ByVal Site As String)
        Dim C As NetworkCredential
        C = New NetworkCredential("utilizador", "password", "http://webservice_exterior.com")
        Dim Cache As CredentialCache = New CredentialCache()
        Dim URL As New Uri("http://webservice_exterior.com")
        Cache.Add(URL, "Basic", C)
        Dim WebReq As WebRequest = WebRequest.Create("http://webservice_exterior.com")
        WebReq.Credentials = Cache
    End Sub

O codigo que tenho neste momento é este e continua me a surgir a maldida dialog para efectuar o login... :S

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
inginheiiro    1
inginheiiro

Bom dia,

Vou testar e já comunico

Quanto ao codigo postado pelo inginheiiro eu penso que nao se adequa ao meu caso dado que estou a instaciar um webservice local, coisa que eu nao tenho dado que é um webservice exterior.

Cumps, e ate já

O código que "postei" não faz diferenciação sobre a localização do webService.

O codigo que "postei", assume que o Url está protegido pelo IIS por autenticação NTLM

cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
freaklori    0
freaklori

inginheiiro

Entao podes me explicar, ajudar na configurar na adiçao de um windows service ao meu projecto e ele chamar o windows service

exterior

algo assim nao :

WindowService que adicionei ao projecto


Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols

<WebService(Namespace:="http://windows_service_exterior.com")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class WebService
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function HelloWorld() As String
        Return "Hello World"
    End Function


End Class

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
inginheiiro    1
inginheiiro

nota: WindowsService e WebService são 2 coisas bem distintas.

segundo o teu codigo, é algo do genero:

System.Net.CredentialCache myCredentials = new System.Net.CredentialCache();
System.Net.NetworkCredential netCred = new System.Net.NetworkCredential("LOGIN","PWD");
                                               
WebService w = new WebService()
myCredentials.Add(new Uri(w.Url), "Ntlm", netCred);
w.Credentials = myCredentials;

Console.Writeln(w.HelloWorld());

Supondo que no IIS o acesso ao teu WebService está activada a opção Integrated Windows Authentication

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
freaklori    0
freaklori

w.Credentials = myCredentials;

Da me um erro nesta linha, julgo que algo nao está bem no webservice.

Não foi localizado o membro público 'Credentials' no tipo 'WebServiceTeste'.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
freaklori    0
freaklori

Esta na mesma.

Simplesmente adicionei um webservice alterar o local no webservice e nada :S

até tive que definir uma variavel publica com a localizacao do webservice para obter isto new Uri(w.Url)

:S

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade