Usuário com melhor resposta
Gerenciar acesso entre páginas

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!
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
-
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
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 -
-
-
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 -
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! -
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 -
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!
-
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 -
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
-
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