ASP.NET Web Pages - Objeto WebSecurity

Descrição

O objeto WebSecurity fornece segurança e autenticação para aplicativos ASP.NET Web Pages.

Através do objeto WebSecurity, você pode criar contas de usuário, fazer login e logout, redefinir ou mudar senhas, etc.

Manual de Referência do Objeto WebSecurity - Atributos

Atributo Descrição
CurrentUserId Obtém o ID do usuário atual.
CurrentUserName Obtém o nome do usuário atual.
HasUserId Obtém o valor que indica se o usuário atual possui ID de usuário. Se sim, retorna true.
IsAuthenticated Obtém o estado de autenticação do usuário atual.

Manual de Referência do Objeto WebSecurity - Métodos

Atributo Descrição
ChangePassword() Muda a senha do usuário.
ConfirmAccount() Confirma a validade da conta e ativa a conta.
CreateAccount() Cria uma nova conta de usuário.
CreateUserAndAccount() Cria uma nova conta de usuário.
GeneratePasswordResetToken() Gera um token de redefinição de senha que pode ser enviado por e-mail ao usuário.
GetCreateDate() Retorna a data e hora de criação da conta de membros especificada.
GetPasswordChangeDate() Retorna a data e hora da última mudança de senha da conta de membros especificada.
GetPasswordFailures
SinceLastSuccess()
Retorna a quantidade de tentativas de login falhadas com a senha incorreta desde o último login bem-sucedido ou criação da conta de membros.
GetUserId() Retorna o ID do usuário com base no nome de usuário especificado.
GetUserIdFrom
PasswordResetToken ()
Retorna o ID do usuário a partir do token de redefinição de senha.
InitializeDatabaseConnection() Inicializa o sistema de associação conectando-se ao banco de dados que contém informações do usuário.
IsAccountLockedOut() Indica se a conta de associação especificada foi bloqueada devido a muitas tentativas de senha falhadas.
IsConfirmed() Retorna um valor que indica se o usuário já foi confirmado.
IsCurrentUser() Retorna um valor que indica se o nome de usuário do usuário logado coincide com o nome de usuário especificado.
Login() Login do usuário.
Logout() Desconectar o usuário.
RequireAuthenticatedUser() Se o usuário não estiver autenticado, configure o código de status HTTP para 401 (não autorizado).
RequireRoles() Se o usuário atual não pertencer ao papel especificado, configure o código de status HTTP para 401.
RequireUser() Se o usuário atual não for o usuário especificado, configure o código de status HTTP para 401.
ResetPassword() Restabelecer a senha usando o token de redefinição de senha.
UserExists() Verificar se o usuário existe.

Technical Data

Name Value
Class WebMatrix.WebData.WebSecurity
Namespace WebMatrix.WebData
Assembly WebMatrix.WebData.dll

Inicializar o banco de dados WebSecurity

Antes de usar o objeto WebSecurity, você deve criar ou inicializar o banco de dados WebSecurity.

No diretório de arquivos web, crie ou edite a página _AppStart.cshtml.

Escreva o seguinte código neste arquivo:

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", 
true);
}

O site executa o código acima toda vez que é iniciado. Ele inicializa o banco de dados WebSecurity.

"Users" é o nome do banco de dados WebSecurity. (Users.sdf)

"UserProfile" é o nome da tabela de banco de dados que contém informações de configuração do usuário.

"UserId" é o nome da coluna que contém o ID do usuário (chave primária).

"Email" é o nome da coluna que contém o nome do usuário.

O último parâmetro true é um valor lógico que indica se devem ser criadas as tabelas de perfil de usuário e associação (se não existirem), caso contrário false.

Dica: Embora true indique a criação automática das tabelas do banco de dados, o banco de dados em si não será criado automaticamente. Ele deve existir.

Banco de Dados WebSecurity

Cada registro na tabela UserProfile representa um usuário, incluindo o ID do usuário (chave primária) e o nome do usuário (email):

UserId Email
1 john@johnson.net
2 peter@peterson.com
3 lars@larson.eut

A tabela Membership contém informações de associação, como quando o usuário criou e se confirmou a associação (e quando).

Tal como neste exemplo (algumas colunas não são listadas):

UserId Data de Criação Confirmação
Token
Se
Confirmação
Última
Erro de Senha
Senha Alteração de Senha
1 12.04.2012 16:12:17 NULL True NULL AFNQhWfy.... 12.04.2012 16:12:17

Notas:Se você desejar ver todas as colunas e todos os conteúdos, abra o banco de dados através do WebMatrix e veja cada tabela.

Configuração Simples de Associados

Se o seu site não estiver configurado para usar o sistema de associação ASP.NET Web Pages SimpleMembership, pode ocorrer um erro ao usar o objeto WebSecurity.

Se a configuração do provedor de hospedagem for diferente da do seu servidor local, ocorrerá um erro. Para resolver este problema, adicione o seguinte elemento ao arquivo Web.config do site:

<appSettings> 
<add key="enableSimpleMembership" value="true" /> 
</appSettings>