O MVC vem com um ActionFilter Para alcançar a autenticação de identidade no Asp.NET WebForm, a Microsoft nos oferece três maneiras, sendo a mais comumente usada a autenticação do Formulário, que precisa ser configurada com as informações correspondentes. Por exemplo, as seguintes informações de configuração:
Isso significa que nossa página de login é Login.aspx, a página padrão após o login bem-sucedido é Default.aspx, e nossas informações de usuário adotam dois métodos: verificação e criptografia. E o mais importante é que precisamos escrever o método de autorização (a autorização abaixo deve ser escrita, caso contrário é inútil usar apenas a autenticação do Forms e então definir atributos relevantes), negar todos os usuários anônimos, e só usuários logados podem acessar normalmente. Depois disso, configuramos o botão de login para escrever o nome de usuário no cookie (ou seja, executar FormsAuthentication.SetAuthCookie(nome, falso); É isso. 0 No Asp.Net MVC também podemos usar autenticação Forms, mas se você fizer isso no WebForm, não vai funcionar. Por exemplo, você configura as informações assim:
Você configura um login no seu Login.aspx para acionar o login no AccountController para fazer login, onde o código de login:
Depois disso, você verá que seu login não será executado. Qual é o motivo? Por que a mesma configuração não funciona no MVC? O motivo é que o mecanismo é diferente, porque você configura um método de autorização que torna o login inacessível. Então, como fazemos isso? Na verdade, em Asp.Net MVC temos uma maneira melhor de fazer tudo isso, não precisamos de um método de autorização, o que significa que nossas informações de configuração ficam assim:
Não há necessidade de especificar que usuários anônimos não podem fazer login, etc. Claro, você verá que só fazer isso não é suficiente, mas precisamos informar ao sistema quais precisam estar logados para acessar. Você pode estar pensando, o()〈))o Ah, isso é muito trabalho. Não é assim, é muito simples, só precisamos marcar [Autorizar] na Ação que precisa ser autenticada. Por exemplo, tenho duas páginas na pasta Home, Index e Home, e quero que o Index seja autenticado para acesso, mas o Home não permite, então só preciso dar ao Index a tag Action [Authorize], ou seja:
Isso permite que o Index seja acessado após o login, enquanto o Home não precisa estar logado. Se você precisar autorizar papéis, pode especificar o papel ao marcar Autorizar (por exemplo, [Authorize(Role=Administrators)]), mas precisa usar o mecanismo de associação fornecido pela Microsoft, porque seu papel não pode existir à toa, mas sim no banco de dados correspondente, como mencionei em outro blog. Personalize o ActionFilter Às vezes, você pode não conseguir atender a esse tipo de autenticação, ou se sentir que não é flexível o suficiente, não importa, Asp.Net MVC permite personalizar seu ActionFilter. Por exemplo, agora personalizo a autenticação:
Se for necessário gerenciamento de usuários, definirei os filtros relacionados ao papel:
Na verdade, você verá que os dois Atributos acima foram resolvidos pelo Authorized embutido do MVC, e aqui basicamente dizemos que você pode estendê-lo se necessário. Bem, é isso por hoje! Código fonte para download: FormFormsAuthenticationMvc
|