none
Gerenciar acesso entre páginas RRS feed

  • Pergunta

  • Situação:

    Tenho lá a página de Login, faço o login, valido o usuário e direciono
    para uma pagina Admin, onde tenhos menus.

    Como faço para que o sistema peça novamente ao usuário o Login,
    quando ele usar o botão voltar e depois
    avançar?

    Obrigado!

    segunda-feira, 26 de abril de 2010 16:47

Respostas

  • Olá Miguel, conforme prometido, segue o código:
    Por favor, ignore o código postado anteriormente, pois aquele é um código que deixa TODO o sistema protegido por usuário e senha, librando apenas uma ou outra pasta, e não apenas protege uma pasta, deixando o resto liberado conforme sua necessidade (pelo que entendi).
    Inclusive, o diretório virtual do site que tenho em casa está permitindo pesquisa no diretório, portanto é só adicionar o código abaixo ao web.config e nem precisa fazer alterações no IIS.
    Em qualquer lugar dentro da tag <configuration>, inclua o seguinte código:
    	<location path="Admin">
    		<system.web>
    			<authorization>
        <!--
          Aqui é o ponto onde se pede o login do administrador para a determinada pasta,
          se nega acesso ao cliente à parte administrativa.
          As tags comentadas abaixo são para teste, onde * significa acesso a todos, e ? significa mande para 
          a página de login. Para testes, basta substituir a linha descomentada pelo tipo de login desejado!
        -->
    				<deny users="?"/>
    				<!-- <allow users="*"/> -->
    				<!-- <deny users="?"/> -->
    			</authorization>
    		</system.web>
    	</location>
    Não esqueça de dentro da tag <system.web>, colocar o código que informa à aplicação qual é o tipo de autenticação e quais são as páginas default e de login, conforme código seguinte.
    Sugestão: Crie uma página Login.aspx e coloque dentro da pasta Admin. Assim conforme você explicou, esse código ficaria assim:

    		<authentication mode="Forms">
    			<forms loginUrl="Admin/Login.aspx" name="qualquerNome" defaultUrl="Admin/admin.aspx"/>
    		</authentication>
    Espero ter ajudado a tempo !


    ***** Não esqueça de marcar o post se ele foi útil ... [], Elek
    • Marcado como Resposta Miguelfal quinta-feira, 6 de maio de 2010 13:55
    quinta-feira, 6 de maio de 2010 04:53
  • No seu WebConfig, coloque assim (logo abaixo do <System.Web>):
    <authentication mode="Forms">
       <forms loginUrl="~/Default.aspx" name="Login" timeout="20" />
      </authentication>

    Então, dentro da sua pasta Adm, crie um novo webconfig, limpe tudo e coloque assim:

    <?xml version="1.0"?>
    <configuration>
      <appSettings/>
      <connectionStrings/>
      <system.web>
       <authorization>
        <deny users="?"/>
       </authorization>
      </system.web>
    </configuration>
    

    Fkaeh - Gambi.NET® Framework Certificated 2010
    • Marcado como Resposta Miguelfal quinta-feira, 6 de maio de 2010 13:55
    quinta-feira, 6 de maio de 2010 12:23

Todas as Respostas

  • Você terá que criar um javascript que verifique se o usuário voltou (step.forward(-1) algo assim).
    E esse javascript deverá limpar sua session de login (se estiver usando o Membership do asp.net)

    Fkaeh - Gambi.NET® Framework Certificated 2010
    terça-feira, 27 de abril de 2010 12:06
  • utiliza a validação no Load da sua página:

    /* Caso o usuário esteja retornado para a página */
    if (Page.IsPostBack){
      Session["Login"] = null;
      txtUsuario.Text = "";
      txtSenha.Text = "";
    }

     

    terça-feira, 27 de abril de 2010 12:40
  • Será que não conseguiria fazer alguma configuração no web.config?
    sexta-feira, 30 de abril de 2010 13:51

  • Permissão de página utilizando Web.Config

    http://imasters.uol.com.br/artigo/13185/aspnet/permissao_de_pagina_utilizando_webconfig/


    msn: poseidonfba@hotmail.com
    sexta-feira, 30 de abril de 2010 16:20
  • O problema é o que segue:

    Tenho lá o meu site
    http://dominio.com.br/admin/

    o que eu estou tentando descobrir é como oculto essa pasta admin, já que quando se entra
    conforme acima, mostra todos os forms e demais pastas.
    A idéia é q quando o se tentar fazer isso, ele direcione para a página Default.aspx.
    Então imagino, que seja alguma configuração no web.config.
    Será que teriam alguma sugestão?
    Obrigado!

    quarta-feira, 5 de maio de 2010 13:53
  • No seu web.config, dentro da tag system.web, coloque:

      <authentication mode="Forms">
       <forms name="suaAplicacao" loginUrl="~/Admin/Default.aspx" defaultUrl="~/Admin/SuaPaginaPrincipal.aspx" timeout="14400" />
      </authentication>
      <authorization>
       <deny users="?" />
      </authorization>

    Se por exemplo você quiser que todas as pessoas tenham acesso a pasta imagens por exemplo, fora do system.web, você coloca:

     <location path="Images">
      <system.web>
       <authorization>
        <allow users="*" />
       </authorization>
      </system.web>
     </location>
    Acho que é isso que você queria, se não for, posta aí que a gente tenta ajudar.


    ***** Não esqueça de marcar o post se ele foi útil ... [], Elek
    quarta-feira, 5 de maio de 2010 16:24
  • Olá EleK!

    A estrutura do meu site está assim:

    Default.aspx (Na raiz)

    /admin/admin.aspx e algumas pastas

    Só que aqui só vai entrar usuário autenticado, onde irá chamar a pasta admin.aspx.

    O que está acontecendo, é que tenho é possivel colocar na url http://dominio.com.br/admin e aí exibe as pastas. A idéia é que se o usuário tentar fazer isso, direcionar para o form Default.aspx raiz ou o form de login.

    Na prática exibi assim:

    Directory Listing -- /dominio/admin/


    [To Parent Directory]
    
         Monday, May 03, 2010 09:07 AM    <dir> administrativo
         Monday, May 03, 2010 09:07 AM    <dir> escritorios
         Monday, May 03, 2010 09:07 AM    <dir> sistemas
         Monday, May 03, 2010 09:07 AM    <dir> unidades
       Friday, January 08, 2010 05:28 PM    1,293 admin.aspx
       Tuesday, April 27, 2010 03:34 PM    2,695 admin.aspx.cs
      Friday, December 19, 2008 04:22 PM      64 vssver.scc
    

    Version Information: ASP.NET Development Server 9.0.0.0

    Será que isso é alguma configuração do provedor?

    Obrigado!

    quarta-feira, 5 de maio de 2010 17:47
  • Esse tipo de exibição é quando o IIS configurado para permitir pesquisas em pasta.
    Se você remover essa opção, o correto é ele te direcionar para a página de login.
    Tenho a sensação que acabei esquecendo alguma coisa no web.config. Em casa tenho um projeto que faz exatamente isso que você está perguntando.
    Chegando lá eu posto o código aqui pra você ok ?!
    Mas só pra reforçar, esse lance de exibir os arquivos, com certeza é configuração do IIS.
    Em propriedades do diretório virtual, logo na primeira aba você pode desmarcar a opção pesquisa, que já não vai mais listar os seus arquivos.


    ***** Não esqueça de marcar o post se ele foi útil ... [], Elek
    quarta-feira, 5 de maio de 2010 20:59
  • Olá Miguel, conforme prometido, segue o código:
    Por favor, ignore o código postado anteriormente, pois aquele é um código que deixa TODO o sistema protegido por usuário e senha, librando apenas uma ou outra pasta, e não apenas protege uma pasta, deixando o resto liberado conforme sua necessidade (pelo que entendi).
    Inclusive, o diretório virtual do site que tenho em casa está permitindo pesquisa no diretório, portanto é só adicionar o código abaixo ao web.config e nem precisa fazer alterações no IIS.
    Em qualquer lugar dentro da tag <configuration>, inclua o seguinte código:
    	<location path="Admin">
    		<system.web>
    			<authorization>
        <!--
          Aqui é o ponto onde se pede o login do administrador para a determinada pasta,
          se nega acesso ao cliente à parte administrativa.
          As tags comentadas abaixo são para teste, onde * significa acesso a todos, e ? significa mande para 
          a página de login. Para testes, basta substituir a linha descomentada pelo tipo de login desejado!
        -->
    				<deny users="?"/>
    				<!-- <allow users="*"/> -->
    				<!-- <deny users="?"/> -->
    			</authorization>
    		</system.web>
    	</location>
    Não esqueça de dentro da tag <system.web>, colocar o código que informa à aplicação qual é o tipo de autenticação e quais são as páginas default e de login, conforme código seguinte.
    Sugestão: Crie uma página Login.aspx e coloque dentro da pasta Admin. Assim conforme você explicou, esse código ficaria assim:

    		<authentication mode="Forms">
    			<forms loginUrl="Admin/Login.aspx" name="qualquerNome" defaultUrl="Admin/admin.aspx"/>
    		</authentication>
    Espero ter ajudado a tempo !


    ***** Não esqueça de marcar o post se ele foi útil ... [], Elek
    • Marcado como Resposta Miguelfal quinta-feira, 6 de maio de 2010 13:55
    quinta-feira, 6 de maio de 2010 04:53
  • No seu WebConfig, coloque assim (logo abaixo do <System.Web>):
    <authentication mode="Forms">
       <forms loginUrl="~/Default.aspx" name="Login" timeout="20" />
      </authentication>

    Então, dentro da sua pasta Adm, crie um novo webconfig, limpe tudo e coloque assim:

    <?xml version="1.0"?>
    <configuration>
      <appSettings/>
      <connectionStrings/>
      <system.web>
       <authorization>
        <deny users="?"/>
       </authorization>
      </system.web>
    </configuration>
    

    Fkaeh - Gambi.NET® Framework Certificated 2010
    • Marcado como Resposta Miguelfal quinta-feira, 6 de maio de 2010 13:55
    quinta-feira, 6 de maio de 2010 12:23