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

freaklori

Enviar Credenciais Automaticamente

Mensagens Recomendadas

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


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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 :(


There are two ways to write error-free programs; only the third one works.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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;


I used to have a life ... but i bought a programmable machine in 1982 ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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á


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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


I used to have a life ... but i bought a programmable machine in 1982 ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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


I used to have a life ... but i bought a programmable machine in 1982 ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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'.


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
inginheiiro

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'.

http://support.microsoft.com/kb/811318

tem que funcionar. Se estás a fazer bem o teu WebService.


I used to have a life ... but i bought a programmable machine in 1982 ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
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


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Partilhar esta mensagem


Ligação 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 os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.