Pergunta

O que é a melhor maneira de implementar a segurança usando funções do Active Directory em um site dinâmico de dados asp.net?

Gostaria de restringir certos pontos de vista (e os links relacionados) para determinadas funções. isto é, o utilizador A só pode exibir acções de tabela para a tabela e o utilizador B x só pode exibir acções de tabela para a tabela y

Foi útil?

Outras dicas

Eu tenho feito isso em muitas aplicações.

Autenticação têm janelas habilitado para a sua aplicação.

Faça algum objeto que possa armazenar as credenciais do usuário e ter esse objeto armazenado na sessão para retreival rápido. Se ele não estiver lá, você pode rapidamente reconstruí-lo. Eu costumo ter cada papéis definida para um pouco por exemplo:


enum USER_ROLE : int
{
  Role1 = 1,
  Role2 = 2,
  Role3 = 4,
  Role4 = 8,
  etc
}

if (Context.User.IsInRole("Roll1Name")) YourUserObject.Roles += USER_ROLE.Role1;
if (Context.User.IsInRole("Roll2Name")) YourUserObject.Roles += USER_ROLE.Role2;
etc

Em seguida, sempre que um controle precisa ser protegido, eu passá-lo em uma função que leva um HtmlControl e uma propriedade com base na função do usuário e o requisito de segurança para esse controle.

Por exemplo. bool SetControlSecurity (HtmlControl ctrl, iUserRoles int, iControlRoles int, AÇÃO eAction)

Assim, um exemplo para fazer um painel poderia ser:

SetControlSecurity (pnlUserInfo, YourUserObject.Roles, eRole.Role2, ACTION.Hide);

Normalmente, eu também tenho que tomar em um param com o tipo de ação a ser executada em falha de segurança como esconder, somente leitura, os dados claro, etc ...

Comparando o papel na função é fácil:


bool bHasAccess = ((iUserRole & iControlRoles) > 0);
if (bHasAcess)
{
  // leave the control or make sure it is visible etc
}
else
{
  // take action to secure the control based on the action
}

Espero que ajude.

Você pode simplesmente usar o ASP.NET Active Directory Memebrship e provedores de função para autenticar \ autorizar os usuários para o aplicativo. Em seguida, você pode chamar o Roles.IsUserInRole onde quer que você queira dar uma olhada para a associação de função AD para verificar os usuários são uma parte do grupo relevante (s) antes de processar o conteúdo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top