Pergunta

Eu tenho alguns pergunta:

Como fazer uma função de aplicativo baseado na web? Tal como em sites de fórum, há muitos tipos de usuário, admin, moderador etc ... é o papel destes tipos de usuários armazenados em banco de dados ou web.config? E quando um login de usuário para o nosso site, como controlar esta papéis de usuários? Em suma, eu quero aprender sobre a autorização e autenticação.

Obrigado ..

Foi útil?

Solução

@Mavera:

Basicamente, é o conceito de ter sua tabela próprios usuários em seu próprio banco de dados, onde você pode gerenciar permissões e armazenar informações de login (corretamente hash é claro). No caso de um esquema de permissão multi-nível, eu costumo usar duas ou mais tabelas, por exemplo:

TblUsers:
-----------------------------------------------------------------
| UserID (PK) | UserName | HashedPassword | PermissionLevel (FK)|
|---------------------------------------------------------------|
|     1       | BobTables| adfafs2312     |         2           |
-----------------------------------------------------------------

TblPermissions
-------------------------------------
|  PermissionID (PK) | Description   |
--------------------------------------
|         1          |     User      |
|         2          |   SuperUser   |
|         3          |     Admin     |
--------------------------------------

Você pode adicionar terceira tabela que contém um-para-muitos relação entre TblPermissions que expõe as habilidades reais que o usuário pode ter permissão para fazer.

Consultando um usuário poderia ser tão simples como:

SELECT TblUser.Username, TblPermissions.Description 
    FROM TblUsers, TblPermissions 
    WHERE TblUser.UserID = @UserID 
    AND TblUser.PermissionLevel = TblPermission.PermissionID;

Criar uma classe personalizada para encapsular essas informações e armazená-lo em sessão ASP.NET quando está logado.

Outras dicas

Descobri que o construído em regimes de autorização grande trabalho para situações simples, onde você só precisa basicamente autenticar quem pode entrar e quem pode sair, mas aquém para situações personalizados, como tendo administrador especial contas etc.

Nessas situações, eu criei meu próprio esquema de autenticação.

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