none
Meu menu Asp.Net RRS feed

  • Pergunta

  • Bom dia.

    Fiz um menu de uma forma diferente e com uma boa segurança e bem simples,  acho que para alguns pode ser uma coisa nova e mais segura e para outros um pouco trabalhoso, mas enfim espero que ajudei alguém.

    Toda vez que clicar em algum menu ele vai verificar se tem acesso ou seja se algum menu for escrito fisicamente de um outro aspx que tem no seu sistema  vai ser direcionado para a tela de login.

     //classe para pegar url e pega apenas o texto que é necessario 
            VerificarUrl verUrl = new VerificarUrl();
            protected void Page_Load(object sender, EventArgs e)
            {
                //Tempo estimulado pra voltar pra tela de login
                Response.AppendHeader("Refresh", String.Concat((Session.Timeout * 60), ";URL=/LoginNew.aspx"));
              
                
                string lastURL = String.Empty;
    
                //pega a url do menu ao clicar
                if (Request.ServerVariables["Path_info"] != null)
                {
                    foreach (Char URL in Request.ServerVariables["Path_info"])
                    {
                        lastURL += URL;
                    }
                       //joga a url na classe para ser tratada
                    //passa callphoneadm.telecall.com/VerificarNum.aspx
                        verUrl.setEnd(lastURL);
                   
                }
    Classe
     public class VerificarUrl
        {
    
            public string retornaUrl = "";
            public void setEnd(string Url)
            {
                
                string[] splitBarra = Url.Split('/');
                string[] splitPonto = splitBarra.Last().Split('.');
    
                //resultado = louco
                 this.retornaUrl= splitPonto[0];
    
            }
    
            public string getUrl()
            {  
                return this.retornaUrl;
            }
    
        }

    O nome do  menu tem que ser inserido  em uma tabela, vamos dizer que a pagina é " principal.apsx ", então o id do ul tem que ser ulprincipal e tem que inserir esse nome em uma tabela "permissao".Quando o cliente logar ele vai na tabela verificar as permissão que ele tem tudo separado por (,).

    Ex: tipo de permissao: clienteNormal -> uldetalhamentotarifa,ulconsultasimples,ulchamadas.

    quando ele logar vai aparecer apenas 3 menus que são os aspxs: 

    detalhamentotarifa.aspx

    consultasimples.apsx

    chamadas.aspx

     ArrayList  Arryurl  = new ArrayList();
                 string verificar = "";
                 string validar = "";
                 int contador= 0;
    
    
                //transforma a string em control(ID das ULs)
                foreach (string funcaoValores in valores)
                {
                    validar = funcaoValores.Trim();
                    Control control = FindControl(validar);
                    control.Visible = true;
    
                    Arryurl.Add(validar);
    
                  
                 }
                // pega todos as opçoes relacionado ao cliente de acesso
                //Verificar se o cliente está tentando logar em um endereço que não tem permissão 
                //Caso ele digite um endereço  que sejá diferente da permissão dele a tela vai para tela principal
                    for (int i = 0; Arryurl.Count > i; i++)
                    {
                        verificar = Arryurl[i].ToString();
    
                        if (EndUrl != "ulPrincipal")
                        {
                            if (verificar == EndUrl)
                            {
                                contador = 1;
                            }
                        }
                    }
    
                    if (EndUrl != "ulPrincipal")
                    {
                        //se contador for igual 0 que dizer que ele tentou logar uma tela que não tem permissão 
                        if (contador != 1)
                        {
                            Response.Redirect("Principal.aspx");
                        }
                    }

    Agradeço sempre pela ajuda dos colaboradores e espero que sirva pra alguém.



    sexta-feira, 24 de julho de 2015 13:36