• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

nelsondac

[RESOLVIDO]como faço para abrir uma pagina apenas com autenticação ?

3 mensagens neste tópico

boas.. tou a fazer um site que tem login...

o que se passa é o seguinte, o utilizador faz login e é redireccionado para uma pagina... mas se não tiver login e na barra de endereços meter logo o link da pagina depois do login, o unico erro que dá é da variavel de sessão não existir...

para um utilizador normal ainda vai dizer que o site berrou ou quê :S

alguem me sabe dizer como faço para aparecer sempre qq coisa como:

"TEM QUE FAZER LOG IN" ?

a programação é feita em C# fkb bgd

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não entendi o porque da variável Session ser chamada para o barulho da autenticação e autorização  :hmm: mas em frente...

ASP.Net tem dois módulos para estas coisas: de autenticação e autorização;

Suponho que já o modulo de autenticação já está a usar, pois falas da possibilidade de o utilizador fazer login.

O modulo de autorização permite filtrar os utilizadores que tem acesso ou não a um determinado recurso. A filtragem pode ser por username ou role e é configurada no ficheiro web.config. Para saberes com isto se configura procura por "ASP.NET Authorization" no google, não faltam sites a explicar isso.

Quando é negado o acesso a um recurso o pedido é salta de imediato para o evento de AuthenticateEndRequest, então ai podes verificar se o acesso ao recurso foi negado e nesse caso redireccionar o utilizador para uma outra página. Para te registar no evento AuthenticateEndRequest podes criar um modulo ou utilizador o global.asax. O código é qualquer coisa assim:

    public void AuthenticateEndRequest(object sender, EventArgs e)
    {
        //O erro 401 acontece quando o acesso a um recurso é negado
        if (HttpContext.Current.Response.StatusCode == 401)
        {
            Context.Response.Redirect("~/Entrada.aspx", true);
        }
    }

Espero ter ajudo :P Qualquer dúvida diz...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o problema ficou resolvido com:

ao fazer login é criada uma variavel de sessão. depois essa variavel é lida pós-login...

se a variavel não existir ele aparecia um erro XPTO ... ou seja, para um user normal, ia dizer que o site tinha avariado ou assim...

para resolver isso fiz um try... se desse erro faz um catch e manda para a pagina de login,..

então fiz isto:

{

        int id = 0;

        try

        {

            id = Int32.Parse(Session["ID"].ToString());

        }

        catch (Exception ex)

        {

            Response.Redirect("http://localhost:1150/WebSite2/default.aspx");

        }

        if (id != -1)

            Response.Redirect("http://localhost:1150/WebSite2/default.aspx");

    }

assim faz com que seja necessário estar autenticado... obgd pela ajuda... fica

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora