none
Usuarios e Menus RRS feed

  • Pergunta

  • Amigos.

    Venho lhes pedir uma ajuda para uma questão que muito me aflige. Estou desenvolveno um sistema, com base em um banco de dados já existente (e por sinal, mal estruturado) usado por n aplicaçòes diferentes (Senão fosse por isso, já teria mudado toda a estrutura do banco)

    O que pretendo e preciso fazer é o seguinte:

    Quando o usuario se logar, o sistema irá buscar informaçoes no banco de dados sobre as permissões do mesmo, ou seja, quais telas ele poderá acessar, com base nisso, preciso montar o menu do site conforme as telas que ele pode acessar.

    Não sei se fui claro o suficiente na minha duvida, e se alguem puder ajudar, eu ficaria agradecido.

    Ah...estou usando vb.net e sql server 2005

    Grato!
    quarta-feira, 6 de agosto de 2008 20:34

Respostas

  • Bem uma ideia assim meio rápida seria o seguinte:

    Conforme o que vir do banco vc faz uma condição assim.

     Suponha que vc tenha uma coleção de paginas que o usuario que se logou tem.

    então vc percorre essa coleção e ve as paginas que ele tem acesso.

    e o menu ficaria algo assim:

    if usuario[0].tela1 = true then
    btnMenu.visible = true
    quarta-feira, 6 de agosto de 2008 20:43
  • Cara,

    Se eu entendi bem, vc quer montar o menu dinâmicamente tbem.. Não quer deixar os botões criados e ir setando o visible ou enabled dele...


    Eu faço assim:

    1- Carrego em um DataTable os menus e submenus que eu quero mostrar, já verificaria as permissões no select (tomar cuidado no order by para trazer primeiro os pais);
    2- Uso o componente Menu nativo do asp.net;
    3- Faço um foreach no DataTable, verifico se o menu é pai (raiz), instancio um objeto menu item:


    MenuItem item = new MenuItem();
    item.Value = Convert.ToString(row["menu_id"]);
    item.Text = Convert.ToString(row["menu_nome"]);
    item.NavigateUrl = "~/" + Convert.ToString(row["menu_url"]);

    4- Adiciono no menu:

    MenuSite.Items.Add(item);

    5- O que for subMenu, eu entro numa função recursiva, acho o pai deste subitem, instancio um novo objeto menu item como no passo 3 e adiciono ao menu:

    itemPai.ChildItems.Add(itemFilho);




    Acho que é isso ae...

    []'s
    quarta-feira, 6 de agosto de 2008 21:24
  • Ola,

    Veja se isso pode te ajudar em algo: http://msdn.microsoft.com/en-us/magazine/cc163657.aspx

    quinta-feira, 7 de agosto de 2008 11:08
    Moderador

Todas as Respostas

  • Bem uma ideia assim meio rápida seria o seguinte:

    Conforme o que vir do banco vc faz uma condição assim.

     Suponha que vc tenha uma coleção de paginas que o usuario que se logou tem.

    então vc percorre essa coleção e ve as paginas que ele tem acesso.

    e o menu ficaria algo assim:

    if usuario[0].tela1 = true then
    btnMenu.visible = true
    quarta-feira, 6 de agosto de 2008 20:43
  • Cara,

    Se eu entendi bem, vc quer montar o menu dinâmicamente tbem.. Não quer deixar os botões criados e ir setando o visible ou enabled dele...


    Eu faço assim:

    1- Carrego em um DataTable os menus e submenus que eu quero mostrar, já verificaria as permissões no select (tomar cuidado no order by para trazer primeiro os pais);
    2- Uso o componente Menu nativo do asp.net;
    3- Faço um foreach no DataTable, verifico se o menu é pai (raiz), instancio um objeto menu item:


    MenuItem item = new MenuItem();
    item.Value = Convert.ToString(row["menu_id"]);
    item.Text = Convert.ToString(row["menu_nome"]);
    item.NavigateUrl = "~/" + Convert.ToString(row["menu_url"]);

    4- Adiciono no menu:

    MenuSite.Items.Add(item);

    5- O que for subMenu, eu entro numa função recursiva, acho o pai deste subitem, instancio um novo objeto menu item como no passo 3 e adiciono ao menu:

    itemPai.ChildItems.Add(itemFilho);




    Acho que é isso ae...

    []'s
    quarta-feira, 6 de agosto de 2008 21:24
  • Ola,

    Veja se isso pode te ajudar em algo: http://msdn.microsoft.com/en-us/magazine/cc163657.aspx

    quinta-feira, 7 de agosto de 2008 11:08
    Moderador