Pplware

ASP.NET – Membership pt.2 e Permissões

Estamos de volta com mais um tutorial sobre ASP.NET. Hoje iremos falar das propriedades do Membership e de permissões. Fiquem atentos e participem neste brainstorming de programação.

No último tutorial o utilizador João Rodrigues, mencionou e bem, que era necessário configurar certas propriedades para que o Membership funcione correctamente. Em baixo podemos ver em detalhe as definições dessas propriedades.

Estas propriedades podem ser encontradas na estrutura Membership no web.config.

1.Propriedades Membership
  • ApplicationName: Especifica o nome da aplicação em que o Membership está a ser utilizado, possibilitando desta forma, trabalhar com múltiplas aplicações utilizando a mesma base de dados, mas podendo também utilizar o mesmo nome da aplicação para outras aplicações ASP.NET. Importante para possibilitar a migração de utilizadores entre servidores.
  • EnablePasswordReset: Especifica se será ou não permitido reinicialização da senha do utilizador. Se True, o provider permitirá a reinicialização.
  • EnablePasswordRetrieval: Especifica se será ou não permitido a recuperação da password do utilizador. Se True, o provider permitirá a recuperação.
  • HashAlgorithmType: Utilizado para especificar o algoritmo de hashing que será utilizado pelo provider, para encriptar dados sensíveis.
  • MaxInvalidPasswordAttempts: Define o número de tentativas de acesso até que a conta do utilizador seja bloqueada. O resultado dá-se da soma de tentativas inválidas de recuperação da palavra-chave ou senha.
  • MinRequiredNonAlphanumericCharacters: Define o número de caracteres especiais que a senha deverá conter, não podendo ser definido com um valor menor que 0 ou maior que 128 ou ainda maior que o valor definido no atributo minRequiredPasswordLength.
  • MinRequiredPasswordLength: Define o número mínimo de caracteres para a senha. Também não pode ser definido com um valor menor que 0 ou maior que 128.
  • PasswordAttemptWindow: Define o intervalo de tempo em que é efectuada a contabilidade de tentativas de login falhadas. Quando chegamos ao fim do intervalo especificado neste atributo e o número de tentativas falhadas não atingiu o valor definido no atributo maxInvalidPasswordAttempts, os contadores são reinicializados.
  • PasswordStrengthRegularExpression: Especifica uma expressão regular para validar uma senha e esta expressão deverá funcionar com a classe RegEx.
  • RequiresQuestionAndAnswer: Indica se é ou não necessário informar uma pergunta e sua respectiva palavra-chave para que isso funcione como uma espécie de “lembrete” para o utilizador.
  • UserIsOnlineTimeWindow: Define o tempo em que utilizador é considerado como online, é utilizado para calcular o número aproximado de usuários online.
  • DefaultProvider: O nome do provider que vai utilizar. Lembrando que no elemento providers podemos especificar uma lista deles e é através do defaultProvider que especificamos qual deles utilizar.
2. Permissões

No ultimo tutorial criamos o utilizador “Admin” e associamos o utilizador ao Role Admin. Também restringimos o acesso à pasta Admin da nossa aplicação apenas para utilizadores dentro desse Role.  Hoje vamos por essas configurações em prática.

Vamos adicionar uma nova página dentro da pasta Admin, chamada Admin.aspx.

Depois de adicionada a página vamos ficar com um markup semelhante a este (Adicionar o texto “Página de administração”)

De seguida vamos abrir a página “Site.Master”, está página é a chamada Master Page. Procuramos a tag Menu e vamos adiciona a linha a vermelho, que vai permitir colocar mais uma opção no menu. A única propriedade relevante é a “NavigateUrl” que indica para onde somos redireccionados ao clicar no item do menu.

Ao abrir a aplicação podemos ver o novo item no menu. Ao clicar nesta opção podemos ver que aparece o ecrã de login, pois só podemos ver esta página se estivermos “logados” como administradores.

Para ficar ainda mais profissional podemos escrever um pouco de código, este código vai esconder este novo item do menu caso o utilizador não seja administrador. Este código é colocado no evento Page_Load da página Site.Master. O método “Roles.IsUserInRole” é fornecido pela Framework e pode ser encontrado no namespace System.Web.Security. O que este métod faz é verificar se um utilizador pertence a um determinado Role, neste caso Admin. Caso o resultado seja negativo removemos o item do menu, ficando assim sem a opção Admin no menu.

Com esta alteração se não tivermos feito o login o novo item não aparece.

Depois de fazer o login o item aparece e vemos a nova página que criamos. Como podemos confirmar só podemos aceder a esta página se estivermos no Role de Administradores.

5. Conclusão

Por hoje damos o tutorial por terminado. Em baixo podem fazer download do projecto (Visual Studio 2010). Caso tenham alguma questão já sabem, deixem um comentário em baixo.

Download: GoodToWork [ 2.27Mb ]

Exit mobile version