none
Forma de detectar o Role do User logado - membership .net RRS feed

  • Pergunta

  • ola,

    estou utilizando a bd do aspnet, e a minha ideia é a seguinte. tenho vários utilizadores, cada um com um Role. tenho 3 tipos diferentes de roles (Admin, User, Visitor).

    quando um utilizador efetuar o login na pagina, ele fica na pagina de boas vindas. o que pretendo é no pageload se tem como eu verificar qual o role deste usuario, e conforme este, efectuar algumas mudanças na pagina.

    na minha pagina tem um gridview com alguns campos e 3 links. o que quero é se o utilizador for admin, o grid permanece normal, se for um usuario com role User ou Visitor, os links no grid não aparecem...

    alguma forma de fazer isso?? agradeço

    quarta-feira, 19 de junho de 2013 10:46

Respostas

  • Você pode descobrir todos os roles do usuário logado, através de:

    string[] roles = Roles.GetRolesForUser()

    Existe um componente chamado LoginView, nele você pode configurar algo para aparecer na página de acordo com as roles, é bem fácil de usar.

    Caso você queira "mudar" algo dependendo da role do usuário, chame o método acima e através de uma estrutura IF sete o Visible de algum componente para true ou false.


    Ao infinito e além!

    • Marcado como Resposta flaviodantas quinta-feira, 20 de junho de 2013 09:19
    quarta-feira, 19 de junho de 2013 15:41

Todas as Respostas

  • entao pessoal, alguma ideia aí?? estou mesmo necessitando de uma ajuda...
    quarta-feira, 19 de junho de 2013 15:30
  • Você pode descobrir todos os roles do usuário logado, através de:

    string[] roles = Roles.GetRolesForUser()

    Existe um componente chamado LoginView, nele você pode configurar algo para aparecer na página de acordo com as roles, é bem fácil de usar.

    Caso você queira "mudar" algo dependendo da role do usuário, chame o método acima e através de uma estrutura IF sete o Visible de algum componente para true ou false.


    Ao infinito e além!

    • Marcado como Resposta flaviodantas quinta-feira, 20 de junho de 2013 09:19
    quarta-feira, 19 de junho de 2013 15:41
  • entao Fabio,

    a ideia fica entao por apanhar os roles e colocar num vector, e depois criar um if para percorrer este vector e comparar com o role pretendido (exemplo: Admin)

    e caso for encontrado, faço o que pretendo.... assim???

    quarta-feira, 19 de junho de 2013 16:02
  • Sim, exatamente isso. No seu caso você provavelmente terá que criar o GridView e configura-lo todo vida código, para depois adicioná-lo na página.


    Ao infinito e além!

    quarta-feira, 19 de junho de 2013 19:27
  • muito obrigado fabio,

    consegui fazer o que pretendia, onde fiz

    string[] roles = Roles.GetRolesForUser();
    
    for (int i = 0; i < roles.Length; i++)
                {
                    if (roles[i].ToString() == "Admin")
                    {
                        this.GridViewResultadosProcLinha.Columns[13].Visible = false;
                     }

    percorro o array e verifico cada 1 se é o que procuro, e como exemplo desabilitei uma coluna do meu grid.

    Valeu meu.

    quinta-feira, 20 de junho de 2013 09:23