Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como restringir usuários não registrados/não autorizados de visualizar páginas da Web no ASP.NET


Primeiro, estabeleça a associação e o provedor de função. Há toda a história sobre isso. vou dar uma ajuda aqui.

Aqui está o link para SqlMembershipProvider (uma das opções que você pode escolher):http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.aspx

Aqui está o link para SqlRoleProvider (novamente, apenas uma das opções que você pode usar)::http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx

Depois de estabelecer isso, você pode limitar o acesso de usuário/função no nível da pasta. Coloque este código em web.config (dentro da tag de configuração):
  <location path="AdminPages">
    <system.web>
      <authorization>
        <allow roles="Administrator"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="UserPages">
    <system.web>
      <authorization>
        <allow roles="Administrator,User"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

Aqui está uma pequena explicação. A pasta raiz "AdminPages" será permitida apenas para usuários na função "Administradores". Pasta raiz "UserPages" para usuários na função "Administrador" e "Usuário". Em ambos os casos, usuários desconhecidos não terão permissão para acessar as pastas. Isso é tudo que você precisa. Alternativa para isso é criar uma classe que herda de Page e então manipular o acesso à página... porém eu não iria por esse caminho.