• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

freaklori

Enviar Credenciais Automaticamente

13 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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á

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

  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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

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