Currently Browsing

Julho, 2008

SQL Server 2k5 – Copiar resultados com nome das colunas

Uma tarefa que executo muitas vezes no trabalho são retirar listagens das base de dados e fazer o tratamento necessário no Excel.

Uma opção (e que por defeito está desactivada) no SQL Server 2k5 é permitir que ao copiar a grelha dos resultados inclua também o nome das colunas.

Para a activar basta ir a Tools > Options > Query Results > Sql Server > Results to Grid e marcar a opção “Include column headers when copying or saving the results

Sql Server 2k5 Options

Sql Server 2k5 Options

HttpWebRequest + forçar validação de certificado

Se abrirmos num browser, ex: IE7, um site cujo certificado não é considerado válido, aparece uma mensagem com essa indicação e é necessária a indicação de que queremos avançar para o site (ou não).

Acontece o mesmo quando tentamos aceder a esse mesmo site usando o HttpWebRequest. Por exemplo:

Dim site As String = “https://www.site.com/pagina.aspx
Dim req As HttpWebRequest = WebRequest.Create(site)
Dim c As CredentialCache = New CredentialCache
c.Add(New Uri(site), “Basic”, New NetworkCredential(“username”, “password”))
req.Credentials = c
Dim response As WebResponse = Nothing
response = req.GetResponse()

Ao executar será retornado o seguinte erro:

The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

Ou seja, é necessário forçar a validação do certificado para dar a volta a isto. Como? Com a propriedade ServerCertificateValidationCallback.

Primeiro, criar uma função que indique que indique se vamos ou não aceitar o certificado (neste caso indico que será sempre aceite).

 

 

Private Function ValidateCertificate(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean
Return True
End Function

Por fim, adicionado ao Form_Load o seguinte:

ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateCertificate)

 

o que fará com que aceite sempre os pedidos de validação do certificado.

Blogroll