none
password pertence ao ADM RRS feed

  • Pergunta

  • Uso VS2010, aspnet 4 c#

    Uso a classe Membership pra gerenciar a segurança do site. O Usuário digita o Password em uma caixa de text, como saber se a senha pertence a usuário com RoleName igual a "ADMINISTRADOR"


    Álvaro Luiz




    • Editado Álvaro Luiz quarta-feira, 12 de março de 2014 17:26
    quarta-feira, 12 de março de 2014 13:20

Respostas

  • Resolvi dessa forma:

     string funcao = "ADMINISTRADOR";                                   
     string senha = txtSenha.Text.Trim();

    string conexao = null;
     SqlConnection con = null;
    SqlDataReader dataReader = null;
     SqlCommand cmd = null;

    conexao = ConfigurationManager.ConnectionStrings["Seguranca"].ConnectionString;
    con = new SqlConnection(conexao);

     cmd = new SqlCommand();
    cmd.CommandText = "SELECT u.UserName FROM aspnet_Membership m, aspnet_Users u, aspnet_UsersInRoles i, aspnet_Roles r WHERE m.UserId = u.UserId AND u.UserId = i.UserId AND i.RoleId = r.RoleId AND (m.Password = @senha) AND (r.RoleName = @funcao)";
     cmd.Parameters.AddWithValue("@senha", senha);
     cmd.Parameters.AddWithValue("@funcao", funcao);
    con.Open();
    cmd.Connection = con;
    dataReader = cmd.ExecuteReader();

     if (dataReader.HasRows)
     {

     F A Ç A   A L G O . . . . . . 

    }


    Álvaro Luiz

    • Marcado como Resposta Giovani Cr sexta-feira, 14 de março de 2014 13:45
    quinta-feira, 13 de março de 2014 11:25

Todas as Respostas

  • Bom dia Alvaro,

    Poderia explicar melhor?
    Não consegui entender direito o que você deseja fazer.

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    Msdn Community Support

    Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 12 de março de 2014 14:44
  • Olá Giovani

    É o seguinte, na segurança do seu site uso a classe Membership, tem uma determinada operação que apenas usuários com RoleName = administrador podem realizar, então solicito que o usuário digite sua senha em uma caixa de text, então preciso saber se esta senha pertence a um usuário ADMINISTRADOR   


    Álvaro Luiz

    quarta-feira, 12 de março de 2014 17:14
  • Cada usuário pode ter uma propriedade "Administrador".
    Então no evento que necessite de permissão de administrador você verifica se é administrador ou não no evento.
    quarta-feira, 12 de março de 2014 17:17
  • Resolvi dessa forma:

     string funcao = "ADMINISTRADOR";                                   
     string senha = txtSenha.Text.Trim();

    string conexao = null;
     SqlConnection con = null;
    SqlDataReader dataReader = null;
     SqlCommand cmd = null;

    conexao = ConfigurationManager.ConnectionStrings["Seguranca"].ConnectionString;
    con = new SqlConnection(conexao);

     cmd = new SqlCommand();
    cmd.CommandText = "SELECT u.UserName FROM aspnet_Membership m, aspnet_Users u, aspnet_UsersInRoles i, aspnet_Roles r WHERE m.UserId = u.UserId AND u.UserId = i.UserId AND i.RoleId = r.RoleId AND (m.Password = @senha) AND (r.RoleName = @funcao)";
     cmd.Parameters.AddWithValue("@senha", senha);
     cmd.Parameters.AddWithValue("@funcao", funcao);
    con.Open();
    cmd.Connection = con;
    dataReader = cmd.ExecuteReader();

     if (dataReader.HasRows)
     {

     F A Ç A   A L G O . . . . . . 

    }


    Álvaro Luiz

    • Marcado como Resposta Giovani Cr sexta-feira, 14 de março de 2014 13:45
    quinta-feira, 13 de março de 2014 11:25