/ / Simple Admin Admin Accout - c #, asp.net-mvc, asp.net-membership

Simple Admin Admin Accoun - c #, asp.net-mvc, asp.net-membership

Eu estou trabalhando no meu primeiro aplicativo asp.net MVC 4 e agora preso com um caso de uso simples.

Eu preciso autenticar um único usuário (Admin) paraque ele / ela possa efetuar login na área administrativa para executar determinadas tarefas. Embora o modelo de projeto da Internet do ASP.Net possua um controlador de Conta usando associação simples, mas parece ter muito mais do que realmente preciso. Por exemplo, eu realmente não preciso da funcionalidade de registro do usuário e funções do usuário. Minhas exigências são bastante simples, apenas para armazenar um único usuário no banco de dados, dar a ele as opções para atualizar suas informações como senha, e-mail etc. área administrativa (controlador admin e ações). O que eu não consigo descobrir é

  1. São membros simples ou outro provedor de associação asp.net minhas únicas opções para este cenário simples.
  2. Se não, que outra opção eu tenho para usar [Authorize] para proteger ações administrativas

Respostas:

1 para resposta № 1

Você pode criar um método personalizado para capturar o usuário e sua função armazenada e, em seguida, avaliá-lo no controlador. Então, por exemplo:

public ActionResult GetAdminPage()
{
var loggedInUserName = HttpContext.User.Identity.Name;
var user = somesortofproviderlookupmethod(loggedInUserName);

// Assume user is a bool and is true
if (user)
{
return view("AdminPage");
}
}

A única coisa que eu não tenho certeza é se deve ou nãoHttpContext.User requer associação. Talvez alguém possa lançar alguma luz. Se assim for, talvez você possa enviar o nome de usuário da exibição, mas é claro que você está confiando no cliente. Então, como você está fazendo a autenticação do usuário, isso mudaria essa resposta um pouco.

Pessoalmente, gosto de ser membro. Ele é limpo, fácil, rápido e pode ser dimensionado muito bem se você tiver requisitos adicionais. Fazer algo como isso seria ainda mais fácil com a associação, já que você pode usar Roles.GetRolesForUser () e retornar apenas a visualização do administrador. se eles contiverem o papel que você está procurando.