DBAuthorization – Parte 9 – Interface de Administração


Nos posts anteriores analisamos detalhadamente como devemos proceder para criar a infraestrutura necessária, e para efetuar a autorização com as informações armazenadas em uma base de dados. Sem telas de administração destas informações, teríamos que recorrer diretamente as ferramentas do próprio banco de dados para inserir as informações.

Para facilitar, criei também duas telas: ViewAllRules.aspx e AddRule.aspx. A primeira delas exibe uma lista contendo todas as políticas cadastradas, exibindo o caminho (path), ação e tipo, dando também a opção de exclusão. A imagem abaixo exibe essa tela, podendo ser customizada para ter uma melhor aparência:

Basicamente, no evento Load da página invoco o método GetAllRules a partir do provider (classe DBAuthorization) e, com o retorno deste método (DBAuthorizationRuleCollection) carrega o controle DataList. O código para carregar os dados é bem simples:

private void BindRules()
{
    this.DataList1.DataSource = DBAuthorization.GetAllRules();
    this.DataList1.DataBind();
}

Já a segunda página, AddRule.aspx, disponibiliza um formulário com os devidos campos para a criação de uma nova política. Esse formulário já está configurado com alguns DropDownList’s para assegurar que o usuário que está cadastrando a política escolha apenas um dos tipos ou ações suportadas. Essa página é exibida abaixo:

O único código que temos aqui é a inserção da regra no evento Click do botão “Add Rule”, código qual é mostrado abaixo:

DBAuthorization.AddRule(
    new DBAuthorizationRule()
    {
        Action = Helper.ParseEnum<DBAuthorizationRuleAction>(this.Action.SelectedValue),
        Data = Helper.ExtractCollectionFromString(this.Data.Text.Trim()),
        Path = this.Path.Text.Trim(),
        Type = Helper.ParseEnum<DBAuthorizationRuleType>(this.Type.SelectedValue)
    });

Ao caminho (path) não necessariamente precisa ser uma página ASPX, mas um diretório. Isso pode ajudar quando você precisa proteger um diretório todo. Utilize a página quando precisar de um refinamento da autorização, concedendo acesso específico à um papel ou usuário. Como a busca pelo path está baseado na propriedade Path da classe HttpRequest, a propriedade Path da classe DBAuthorizationRule deve seguir o padrão de URL absoluta, como por exemplo: “/App/Diretorio/Pagina.aspx” ou apenas “/App/Diretorio/”.

Essas telas são simplesmente páginas ASPX que fazem uso do API DBAuthorization para exibir ou criar novas políticas de acesso. Como elas fazem parte de um projeto específico, essas telas não são reutilizáveis por várias aplicações. Fica sob responsabilidade do desenvolvedor criar ou não as telas nas aplicações que deseja fazer uso desta funcionalidade.

Publicidade

Um comentário sobre “DBAuthorization – Parte 9 – Interface de Administração

  1. Great post and it’s so good. I wish i can add your blog in my RRS, however i can’t get the rrs address. Would you please help me? Thanks a lot!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s