Criando Um Web Service Seguro Com SoapHeader - C# Brasil

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 5

05/06/12

Criando um Web Service seguro com SoapHeader | C# Brasil

C# (C-Sharp), AJAX, ASP.NET, ASP.NET MVC, WinForm, WebForm, Entity Framework, Microsoft Framework .NET, SQL Server, Frum
Pgina Inicial Autores Livros Forum Download Newsletter Empregos Anncios Contato

Social Media

Criando um Web Service seguro com SoapHeader


Publicado 15 de agosto de 2008 | Por Raphael Cardoso | 8 comentrios Ol pessoa, como meu primeiro artigo vou iniciar uma breve explicao de como criar um 0 WebService seguro utilizando o SoapHeader e como acessar os seus mtodos utilizando o ObjectDataSource com GridView. Apesar de o artigo estar com exemplos em C-Sharp, voc poder tranquilamente aplic-lo em VB.NET, basta um pouco de vontade.

0
tweets

Share

Login
Usurio Senha Login form protected by Login LockDown.

No irei entrar em detalhes de como criar uma conexo passo a passo, vou levar em considerao que voc j sabe como fazer e esta a procura de como adicionar mais segurana a seu Web Service, mais prometo criar um artigo especialmente com esse assunto. 1- Criando o WebService Crie um novo Web Service, onde inicialmente seu cdigo ser como esse: 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 //<umr> / smay //SmaydsrpinfrMueSrie / umr ecito o eWbevc //<smay / /umr> [eSrieNmsae="tp/tmuiog"] Wbevc(aepc ht:/epr.r/) [eSrieidn(ofrso=WirflsBscrfl11] WbevcBnigCnomT sPoie.aiPoie_) pbi casMueSrie:Sse.e.evcsWbevc ulc ls eWbevc ytmWbSrie.eSrie { pbi MueSrie) ulc eWbevc( { /Ucmettefloigln i uigdsge cmoet /nomn h olwn ie f sn eind opnns /IiilzCmoet) /ntaieopnn(; } [eMto] Wbehd pbi srn Hlool( ulc tig elWrd) { rtr "el Wrd; eun Hlo ol" }

Lembrar-me Login Cadastre-se Esqueci minha senha

Pesquisar
Pesquisar por:

2- Adicionando um novo mtodo Crie um mtodo onde esse retorne um DataSet para mais tarde ser consumido por uma aplicao, que no nosso caso ser um WebForm: 0 [eMto(ecito ="eon tdso cine cdsrds) 1 WbehdDsrpin Rtra oo s lets aatao"] 0 pbi DtStgtlets) 2 ulc aae eCine( 0 { 3 0 4 DtStdCine =nl; aae slets ul 0 5 srn cnetoSrn ="aaSuc=e_evdrslUe tig oncintig Dt oresusrio_q;sr I=e_sai;asodsasnaIiilCtlgsub;; dsuuuroPswr=u_eh;nta aao=e_d" 0 6 0 7 SrnBidrsltig=nwSrnBidr) tigule qSrn e tigule(; 0 8 sltigApn( SLC *FO CINE "; qSrn.ped" EET RM LETS ) 0 9 1 0 uig(ytmDt.qCin.qCneto cneto =nw sn Sse.aaSlletSloncin oncin e Sse.aaSlletSloncincnetoSrn) ytmDt.qCin.qCneto(oncintig) 1 1 { 1 2 cneto.pn) oncinOe(; 1 3 1 4 uig(ytmDt.qCin.qCmadcmad=nw sn Sse.aaSlletSlomn omn e Sse.aaSlletSlomn() ytmDt.qCin.qCmad) 1 5 { 1 6 cmadCneto =cneto; omn.oncin oncin 1 7 cmadCmadet=sltigTSrn(; omn.omnTx qSrn.otig) 1 8 1 9 uig(ytmDt.qCin.qDtAatraatr=nw sn Sse.aaSlletSlaadpe dpe e Sse.aaSlletSlaadpe(omn) ytmDt.qCin.qDtAatrcmad) 2 0 { 2 1 aatrFl(slets; dpe.ildCine) 2 2 } 2 3 } 2 4 } 2 5 2 6 rtr dCine; eun slets 2 } 7 Pronto, j possumos um Web Service capaz de retornar um DataSet contendo as informaes que desejamos, porem esse poder ser consumido por qualquer aplicao uma vez que for publicada na internet. Ento imagine o seguinte cenrio, seu Web Service possui tambem um mtodo capaz de excluir todos os seu cliente cadastrado. Isso seria catastrfico. Com essa dica abaixo ser possvel proteger facilmente o Web Service impedindo que outras aplicaes, por mais que estejam acessando o Web Service, no sejam capaz de executar os mtodos sem autenticao. 3- Criando a classe de segurana Crie uma nova classe herdando a classe SoapHeader como no exemplo abaixo: 1 pbi casSgrnalets:SaHae ulc ls euacCine opedr 2 { 3 pbi srn Uuro ulc tig sai;

Pesquisar

Encontre-nos no Facebook

C# Brasil no Google+

csharpbrasil.com.br/csharp/criando-um-web-service-seguro-com-soapheader/

1/5

05/06/12

Criando um Web Service seguro com SoapHeader | C# Brasil


3 4 5 } pbi srn Uuro ulc tig sai; pbi srn Sna ulc tig eh;

C# Brasil no Twitter
Willian2013 em Flag.: Boa noite pessoal! Tenho esse bloco de cdigos: private void button1_Cli... http://t.co/szSJebAi #csharp #forum 16 hours ago #comentario Comentrio sobre Desenvolvimento de Website com http://t.co/nckGn3s2 e SQL Server Parte 1 p... http://t.co/Wt7x4Xxp #csharp 1 day ago #comentario Comentrio sobre Desenvolvimento de Website com http://t.co/nckGn3s2 e SQL Server Parte 1 po... http://t.co/KuGOlgEA #csharp 2 days ago Paulo Henrique Menezes em usando JqueryUI - Janela Modal: Valeu Raphael! http://t.co/ZldBNbhF #csharp #forum 2 days ago Raphael Cardoso em usando JqueryUI Janela Modal: Ol Paulo! Fiz um exemplo bem simples de como... http://t.co/dJIKKyXM #csharp #forum 2 days ago

Voc poder adiciona-lo logo abaixo da declarao dos Namespaces ou criar um novo arquivo de Classe. Agora dentro do Web Service voc dever estanciar essa nova classe: 1 pbi SgrnaletsCeeca =nwSgrnalets) ulc euacCine rdnil e euacCine(; Agora atribua o seguinte cdigo antes da declarao do WebMethod. 1 [opedr"rdnil) SaHae(Ceeca"] 2 [eMto(. Wbehd.. Apesar de termos criado o Cabealho de autenticao do nosso Web Service utilizando o SoapHeader, no quer dizer que ele est protegido. 4- Como autenticar o WebService Ser necessrio criar um novo mtodo, s que esse no ir conter a declarao de [WebMethod], ser do tipo private e no precisaremos passar nenhum argumento. Crie um mtodo simples que retorne o Tipo Boolean ou bool e dentro dele crie seu esquema de autenticao utilizando os parmetros do SoapHeader como no exemplo abaixo. 0 piaeBoenAtnio( 1 rvt ola uetcu) 0 { 2 0 3 BoenAtnio =fle ola uetcu as; 0 4 0 5 srn Uuro="di" tig sai amn; 0 6 srn Sna="246; tig eh 135" 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 } 4 i (rdnilUuro= Uuro& Ceeca.eh = Sna f Ceeca.sai = sai & rdnilSna = eh) { Atnio =tu; uetcu re } rtr Atnio; eun uetcu

Enquetes
Quais assuntos gostaria de ler nos prximos artigos? Linq ASP.NET ASP.NET MVC Silverlight Windows Azure Windows Form Outros Vote Ver Resultados Arquivo de enquetes

A Credencial.Usuario e Credencial.Senha so as informao que viro de fora do Web Service pela classe de segurana. Feito tudo isso nosso mtodo de retorno de clientes ficara assim: 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 [opedr"rdnil) SaHae(Ceeca"] [eMto(ecito ="eon tdso cine cdsrds) WbehdDsrpin Rtra oo s lets aatao"] pbi DtStgtlets) ulc aae eCine( { i (Atnio() f !uetcu) { trwnwEcpin"ro Uuronoatniao"; ho e xeto(Er: si uetcd.) } DtStdCine =nl; aae slets ul srn cnetoSrn ="u_oncinsrn" tig oncintig sacneto_tig; SrnBidrsltig=nwSrnBidr) tigule qSrn e tigule(; sltigApn( SLC *FO CINE "; qSrn.ped" EET RM LETS )

Blogroll
ADVPL Brasil Blog do Desenvolvedor Component Factory Dev Mobile Brasil Dirio de Cdigos Marcus Vincius Siqueira Ninja Code Programando .NET Projetos e TI Tiago Lemos

uig(ytmDt.qCin.qCneto cneto =nw sn Sse.aaSlletSloncin oncin e Sse.aaSlletSloncincnetoSrn) ytmDt.qCin.qCneto(oncintig) 1 7 { 1 8 cneto.pn) oncinOe(; 1 9 2 0 uig(ytmDt.qCin.qCmadcmad=nw sn Sse.aaSlletSlomn omn e Sse.aaSlletSlomn() ytmDt.qCin.qCmad) 2 1 { 2 2 cmadCneto =cneto; omn.oncin oncin 2 3 cmadCmadet=sltigTSrn(; omn.omnTx qSrn.otig) 2 4 2 5 uig(ytmDt.qCin.qDtAatraatr=nw sn Sse.aaSlletSlaadpe dpe e Sse.aaSlletSlaadpe(omn) ytmDt.qCin.qDtAatrcmad) 2 6 { 2 7 aatrFl(slets; dpe.ildCine) 2 8 } 2 9 } 3 0 } 3 1 3 2 rtr dCine; eun slets 3 } 3 Quando nosso mtodo for invocado de uma aplicao e ele no tiver passado antes a autenticao, ou seja se retornar false, ser gerando um Exception para a aplicao e a chamada ser interrompida. Abaixo o retorno do erro:

Publicidade

5- Consumindo o Web Service e Autenticando um ObjectDataSource Adicione em seu WebForm um GridView, um ObjectDataSource e faa as devidas configuraes para que ele acesse o WebService e o mtodo desejado. Feito isso, atribua o evento ObjectCreating ao ObjectDataSource que ser onde passaremos nossa autenticao da aplicao como no exemplo abaixo: 0 poetdvi ojletsOjcCetn(betsne,OjcDtSucEetrse 1 rtce od bCine_betraigojc edr betaaorevnAg ) 0 { 2 0 3 SgrnaletsCeeca =nwSgrnalets) euacCine rdnil e euacCine(; 0 4 Ceeca.sai ="di" rdnilUuro amn; 0 5 Ceeca.eh ="246; rdnilSna 135" 0 6 0 7 Cine cine =nwCine(; lets lets e lets) 0 8 cine.euacCineVle=Ceeca; letsSgrnaletsau rdnil 0 9 1 0 eOjcIsac =cine; .betntne lets 1 } 1

csharpbrasil.com.br/csharp/criando-um-web-service-seguro-com-soapheader/

2/5

05/06/12

Criando um Web Service seguro com SoapHeader | C# Brasil


O que ocorrer acima? Quando o ObjectDataSource for criado no momento que a pagina for carregada (no caso dos WebForms) ser realizado a criao do Cabealho com a autenticao e enviado para o ObjectDataSource para que ele possa utiliz-lo para autenticar quando os nossos outros mtodos forem invocados. Se falhar a autenticao, ser gerado um Exception com a mensagem de erro.

DELL INSPIRON ONE 2320 COMPUTADOR 2 ...


Dell

Basicamente isso. Mesmo que voc no utilize o ObjectDataSource para consumir seus mtodos do Web Service, voc poder chamar seu mtodo informando qual a classe de segurana. Espero que esse artigo tenha sido de grande utilidade e caso tenham duvida deixem seus comentrios. Abrao e sucesso!!!

10x R$ 209,90

Posts relacionados: 1. 2. 3. 4. 5.
DELL INSPIRON 14 NOTEBOOK PROCESSADOR...
Dell

Criando Criando Criando Criando Criando

e consumindo Web Service em C-Sharp Parte 1 e consumindo Web Service em C-Sharp Parte 2 Relatrio com ReportViewer em ASP.NET eventos personalizados em UserControl no ASP.NET Botes com Imagens

Postado em ASP.NET, C#, Visual Studio | Marcado como ASP.NET, C#, SoapHeader, SqlAdapter, SqlClient, SqlCommand, SqlConnection Visual Studio, WebMethod, WebService 8 comentrios sobre Criando um Web Service seguro com SoapHeader

10x R$ 124,90

Daniel Medina disse: 14 de julho de 2011 s 17:00 Legal, mas como eu testo a autenticao pelo visual studio?

Lomadee, uma nova espcie na web. A maior plataforma de afiliados da Amrica Latina.

Raphael Cardoso disse: 14 de julho de 2011 s 17:14 Ol Daniel, Conforme o exemplo voc dever instanciar seu webservice e passar o SoapHeader.

buddyweb disse: 29 de agosto de 2011 s 15:40 Parabens pelo artigo mais nesse caso estariamos definindo o login e senha no webservice, e caso eu queria criar um login e senha expecifico para cada empresa que acessar meu webservice?

Raphael Cardoso disse: 29 de agosto de 2011 s 16:46 Dever no trecho do codigo do webservice onde fixamos um login e senha, implementar para que seja feito uma validao no banco de dados. Exemplo: piaeBoenAtnio( rvt ola uetcu) { BoenAtnio =fle ola uetcu as; srn Uuro=Ceeca.sai.elc(',") tig sai rdnilUuroRpae"" "; srn Sna=Ceeca.eh.elc(',") tig eh rdnilSnaRpae"" "; i (sai.egh>0& SnaLnt >0 f UuroLnt & eh.egh ) { DDt dDt =gtaa) Waa waa eDt(; SrnBidrsltig=nwSrnBidr) tigule qSrn e tigule(; sltigApn( SLC *FO UURO "; qSrn.ped" EET RM SAIS ) sltigApn( WEELGN=' +Uuro+" "; qSrn.ped" HR OI " sai ' ) sltigApn( ADSNA=' +Sna+" "; qSrn.ped" N EH " eh ' ) DtStdUuro =dDt.eDtStsltigTSrn() aae ssais waagtaae(qSrn.otig); DtTbedUuro =dUuro.als0; aaal tsais ssaisTbe[] Atnio =dUuro.osCut>0 uetcu tsaisRw.on ; } rtr Atnio; eun uetcu }

Jairo Franco Lima Gomes disse: 12 de outubro de 2011 s 12:34 Muito interesante o artigo, mas no consegui executa-lo. Estou usando o Visual Studio 2008, no consegui encontrar o tipo DWData, Est em qual nomespace? Obrigado, Jairo

csharpbrasil.com.br/csharp/criando-um-web-service-seguro-com-soapheader/

3/5

05/06/12

Criando um Web Service seguro com SoapHeader | C# Brasil

Raphael Cardoso disse: 12 de outubro de 2011 s 21:17 Ol Jairo, Essa uma classe propria que criei para conexao com dados. Utilizei-a somente para exemplificar, porem falhei em nao ter descrito isso ou dado uma outra alternativa. Porem, para que o exemplo fique correto, editei o artigo para que voc possa testar o exemplo. Qualquer problema, me mande uma mensagem e fao a correo. Abrao e bom estudo!

Fabiano Muniz disse: 25 de novembro de 2011 s 10:57 Bom dia Raphael, estou tentando implementar a funcionalidade proposta em seu arquivo mas no entendi esse trecho do seu cdigo, que clientes.SegurancaClientesValue?? Clientes clientes = new Clientes(); clientes.SegurancaClientesValue = Credencial; Obrigado,

Raphael Cardoso disse: 25 de novembro de 2011 s 23:04 Essa Clientes o WebService. A propriedade SegurancaClientesValue onde irei passar a Credencial que foi instanciada previamente. Ela foi criada por conta do SoapHeader que definimos no WebService Deixe um Comentrio
Nome (obrigatrio) Email (no ser publicado) (obrigatrio) Site

Enviar comentrio Qual a soma da expresso: 2 +1 Notifique-me dos comentrios por e-mail

ltimas postagens
Criando uma rea Administrativa Microsoft Virtual Academy Boas prticas para gerao de URLs Conhecendo o CELLSDK Envio de email com PowerShell Padres de codificao N-Tiers != N-Layers Diferena entre ToString( ), Convert.ToString( ), (string) Cast, Safe Cast Verificando DBNull de forma mais elegante com extension methods e generics Como alterar uma classe Css via C#

ltimos comentrios
Raphael Cardoso em Desenvolvimento de Website com ASP.NET e SQL Server Parte 1 Joo Leles em Desenvolvimento de Website com ASP.NET e SQL Server Parte 1 Hamilton em Alterando o idioma do Visual Studio 2010 para Portugus Gabriel Gomes em Microsoft Virtual Academy Renan Camara em Microsoft Virtual Academy Thiago em Criando e consumindo Web Service em C-Sharp Parte 2 Thiago em Criando e consumindo Web Service em C-Sharp Parte 1 paulo em Manipulando arquivos Excel sem uso da interoperabilidade ou conexo OLEDB Geovani Dias em Alterando o idioma do Visual Studio 2010 para Portugus Bruno em CShared #3 [Asp.net] Problema de acentuao (Encoding)

ltimas mensagens do Frum


Flag. usando JqueryUI - Janela Modal consulta CNPJ site receita (webrequest metodo "POST") Zoom no form banco de dados + combobox alimentar combobox usando bindingsource e dindingnavigator Pegar retorno de uma Function sql usando c# e mysql Ler porta serial COMM1 Salvar Form - HELP para um Iniciante Problema com a lgica do exercicio

Tags

.NET acesso a dados ADO.NET AJAX Alfredo Lotar arquivos

ASP.NET
MemoryStream

Blogosfera

Systems Cotidiano cshared

Dicas Entity Framework filestream Framework Krypton LINQ


gerenciamento de contedo Skin

CSS Desenvolver website Desenvolvimento de Website

C# CMS

CodeDom Compiler componente Content Management

Microsoft MSDN MVC MySql Novatec Editora Silverlight Sistema de

Visual Studio VisualStudio Webcast WebForm WebService windows


forms WinForm

Sql Server streamwriter system.io VB.NET

C# Brasil - (CC) Alguns direitos reservados. O contedo deste site est sob a licena de Creative Commons Atribuio-Uso No-Comercial-Compartilhamento pela mesma Licena 2.5 Brasil Permisses e/ou restries alm do escopo desta licena podem ser vistas e/ou requeridas. Nenhum contedo deste site pode ser copiado e reproduzido em outro site sem autorizao do autor!

csharpbrasil.com.br/csharp/criando-um-web-service-seguro-com-soapheader/

4/5

05/06/12

Criando um Web Service seguro com SoapHeader | C# Brasil


2007-2012. Todos os direitos reservados. Desenvolvido por Raphael Cardoso

csharpbrasil.com.br/csharp/criando-um-web-service-seguro-com-soapheader/

5/5

Você também pode gostar