sistema de autenticação para aplicações web ASP.NET?
-
07-07-2019 - |
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 ..
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.