Olá pessoal, temos o objetivo de mostrar como funciona o desenvolvimento com permissão de acesso junto do nosso webservice. Foi falado como introdução na primeira parte e no artigo publicado.

 

 

Requisito:

-         Desenvolvimento de Serviços

-         Linguagem: C#.NET

-         Ferramenta: Visual Studio .NET 2003 ou superior

 

 

Referência: 2-1

 

            Lembramos que é de extrema importância ler desde o primeiro artigo publicado, o link está acima. Isso devido à continuação da idéia principal.

            Nós que, fazemos sempre webservice, seguimos todos os requisitos de serviços ou servir dados para outros sistemas e clientes; precisamos sempre prover mais segurança entre os dados acessados e trafegados. Costumamos dizer que “o dado no sistema vale mais que dinheiro”.

            A importância extrema nunca é demais, o problema com hackers e crackers no mundo da internet tem crescido todos os dias; não entraremos nessa discussão, caso contrário seria outro tipo de artigo.

            No webservice de exemplo, é passado como parâmetro sempre o usuário e senha além dos outros para fazer a busca no banco de dados. Fora a utilização do https / ssl que existe no endereço do arquivo .asmx. Mesmo com toda essa parafernália, não é garantido que a pessoa que está utilizando o serviço é o que está autorizado para a utilização. Qualquer pessoa pode acessar o link e ver os métodos disponíveis.

            A nossa idéia é: além de ter usuário e senha para autenticação no banco de dados, exista uma permissão antes dessa autenticação, ou seja, esse parâmetro não é passado durante a chamada do método como string ou int, o mesmo é atribuído dentro da aplicação antes mesmo de chamar o método.

            Depois que for chamado o método, antes de qualquer coisa é verificado esse tipo de permissão de utilização.

            A primeira classe que precisamos importar é:

 

 

using System.Web.Services.Protocols;

 

Referência: 2-2

 

            Criamos uma classe chamada AuthHeader que estende o SoapHeader.

 

public class AuthHeader : SoapHeader

 

Referência: 2-3

 

            Dentro dessa classe, colocamos dois atributos, um chamado UserName e outro Password.

 

public class AuthHeader : SoapHeader
{
    public string Username;
    public string Password;
}

 

Referência: 2-4

 

            Esse tipo de permissão de utilização será mostrado apenas no xml header do envelope soap. Depois de criar a classe que identifica o método “fulano de tal” precisamos ter permissão de autenticação para utilização. Nem todos os métodos precisam dessa autenticação; os que precisam basta colocar o seguinte código. (Referência 2-5)

 

[SoapHeader ("Authentication", Required=true)]

 

Referência: 2-5

 

            Isso significa que para o método “fulando de tal” requer autenticação Header além dos parâmetros de entrada para autenticação do usuário. Fiquem atentos no próximo passo.

 

To be continue...