Perfis de usuário em asp.net
-
11-12-2019 - |
Pergunta
Tenho um projeto asp.net e estou tentando desenvolver a parte de perfil de usuário, para que os usuários possam logar com seu próprio perfil (perfil contendo admin e usuários).
É correto definir um cookie no computador do usuário, quando o usuário está logado e, em seguida, permitir que o usuário navegue no site?Quero dizer, depois de verificar o nome de usuário e a senha, ao verificar esse cookie em todas as páginas, deixo o usuário navegar na página ou redirecioná-lo para a página de login.
Este caminho está bem?
Isso é seguro de usar?
Existe alguma abordagem melhor para isso?
Solução
Você pode usar SqlProfileProvider.A adição de propriedades de perfil pode ser feita adicionando algum código ao seu web.confing (dentro da seção system.web, o banco de dados para a estrutura sqlprofile deve estar presente):
<profile defaultProvider="SqlProvider">
<providers>
<clear/>
<add name="SqlProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ASPNETDB" applicationName="MyApplication" description="SqlProfileProvider"/>
</providers>
<properties>
<add name="LanguageId" allowAnonymous="false" type="System.Int32"/>
<add name="Company" allowAnonymous="false" type="System.String"/>
</properties>
</profile>
Neste exemplo, adicionei duas propriedades de perfil: languageId e Company.Você pode acessar essas propriedades usando o seguinte código:
ProfileBase profile = ProfileBase.Create("SomeUserName");
string company = (string)profile["Company"];
Para obter informações adicionais sobre SqlProfileProvider, visite o seguinte link:
http://msdn.microsoft.com/en-us/library/system.web.profile.sqlprofileprovider.aspx
Outras dicas
Escrevi algumas respostas sobre como criar perfis do zero:
Para sites (onde o objeto de perfil é gerado automaticamente para você com base nas configurações do Web.config).
Para aplicativos da Web (como MVC, onde você precisa especificar a classe que herda
ProfileBase
)