none
utilizando o aspnet_regsql.exe RRS feed

Respostas

  • É realmente ele não veio, essa tabela so tem 2 chaves primarias também pode ser por causa disso.

    Consegui fazer aqui,

    Criei uma classe Members

    public class Members
        {
            public string Nome { get; set; }
            public string role { get; set; }
    
            public Members(string nome, string role) 
            {
                this.Nome = nome;
                this.role = role;
            }
        }

    Agora no Form_Load

    string[] Role = Roles.GetAllRoles();
    
                List<Members> collection = new List<Members>();
    
                foreach (string userName in Role)
                {
                    var UserInRole = Roles.GetUsersInRole(userName);
    
                    foreach (var item in UserInRole)
                    {
                        collection.Add(new Members(item,userName));
                    }
                }
    
                GridView1.DataSource = collection;
                GridView1.DataBind();

    • Marcado como Resposta Marcos Bazilio terça-feira, 27 de novembro de 2012 14:36
    terça-feira, 27 de novembro de 2012 14:19
    Moderador

Todas as Respostas

  • Olá marcos,

    Você pode usar o próprio membership para isso.

    using System.Web.Security;

    MembershipCreateStatus Status;
    MembershipUser Membros = Membership.CreateUser(
                              "Nome",
                              "Aj20008vs*",
                              "e-mail@com.br",
                              "pergunta",
                              "resposta",
                              true,
                              out Status);

    Web.Config

    <membership defaultProvider="Membership">
          <providers>
            <add name="Membership"
             type="System.Web.Security.SqlMembershipProvider"
                 connectionStringName="sqlserver"/>
          </providers>
        </membership>

    Só preste atenção no connectionStringName você coloca o nome de sua string de conexão.

    <connectionStrings>
        <add name="sqlserver" 
             connectionString="Data source=.\SQLEXPRESS; Initial Catalog=MemberShip; Integrated Security=SSPI" />
      </connectionStrings>

    att.



    quinta-feira, 15 de novembro de 2012 16:46
    Moderador
  • Desculpe pela demora, vou testar.

    Mas percebi que ao executar o aspnet_regsql.exe, são criadas no meu banco, as tabelas, mas quando crio user e roles.... as tabelas continuam vazias.... ???? Pq?

    Valeu 

    segunda-feira, 19 de novembro de 2012 11:39
  • Olha está vendo o último parâmetro do método CreateUser? ele retorna o estatus. Verifica qual estatus ele está retornando, após execução do método, coloca um breakingPoint.
    segunda-feira, 19 de novembro de 2012 23:41
    Moderador
  • Ola Welington, 

    O problema é que eu crio as tabelas com o aspnet_sqlreg.exe.... mas quando através do aspnet configuration eu crio os usuários e permissões, eles não são inseridos nessas tabelas e sim no App_Data do projeto....

    Gostaria de saber se, na hora da publicação do projeto... esse é o melhor meio, ou tenho sim que criar essas tabelas no banco.... e no caso de verificar os usuários.... o select como fica... ???

    Caso tenha um tutorial, por favor.... vi o do Fernando Amaral, só que não funciona....

    Valeu 

    quarta-feira, 21 de novembro de 2012 11:14
  • Olha se você quiser usar esse banco na pasta App_Data pode. Na máquina que a aplicação for rodar precisará de uma instância do SQL SERVER.

    Ele criou na pasta App_Data, acredito que é quando você usa a ferramenta aspnet_regssql, você está deixando na caixa de banco de dados em padrão, por que se você estiver já criado um banco ele vai aparecer lá, e seleciona ele e será adicionado as tabelas neles.

    Acredito  que vai  ajudar.

    http://www.asp.net/web-forms/videos/authentication/configuring-sql-to-work-with-membership-schemas

    http://www.asp.net/web-forms/videos/authentication/creating-user-accounts-programmatically

    Não postei todos links, e só no menu ao lado que tem mais artigos.

    quarta-feira, 21 de novembro de 2012 12:58
    Moderador
  • Fiz conforme o vídeo, mas utilizando o sistema de login do próprio visual studio... , então só tenho que através do aspnet configuration criar os usuários e logins....

    Mas nos videos não fala nada sobre o regsql...

    quarta-feira, 21 de novembro de 2012 18:12
  • mas agora já cadastra no banco de dados?
    quarta-feira, 21 de novembro de 2012 19:04
    Moderador
  • Pronto... consegui resolver essa questão, acredito que o erro era no webconfig.... a página de aspnet configuration.... depois da aplicação publicada ainda é utilizada...?
    sexta-feira, 23 de novembro de 2012 12:18
  • Não entendi :( ,

    Você quer saber se após a publicação, para inserir novos usuários ou regras, irá usar ASP.NET Configuration?

    sábado, 24 de novembro de 2012 01:41
    Moderador
  • Isso.... após a publicação do sistema, como o administrador controla os usuários, como coloca novas permissões.. ou isso fica travado conforme eu publicar...?

    Estou tentando fazer uma pagina para isso, mas não consigo ter acesso via código a tabela aspnet_UsersInRoles (criada com aspnet_regsql.exe).. 

    Valeu

    segunda-feira, 26 de novembro de 2012 11:21
  • Não fica travado, você pode fazer via código como já mostrei acima. O próprio MemberShip vai ficar responsável pelo controle das tabelas. Você não vai ter acesso direto a tabela aspnet_UsersInRoles. Você pode fazer uma conexão com ADO e fazer seu select, mas o MemberShip já faz isso. Acima mostro como criar usuários, mas para você criar regras tem a classe Roles

    Roles.CreateRole("Financeiro");

    Pegar um usuário já cadastrado.

    var user = Membership.GetUser("João");

    Adicionar um usuário a uma Role(papel).

    Roles.AddUserToRole("João", "Financeiro");

    att.



    segunda-feira, 26 de novembro de 2012 12:20
    Moderador
  • Legal Welington... 

    Mas tipo assim,... quero mostrar um grid com usuários e suas permissões... então tentei fazer um join.. e buscar UsersName e RolesName.. pela tabela UsersInRoles.... então não tenho acesso a ela... como faço isso...???

    segunda-feira, 26 de novembro de 2012 12:23
  • Não tenho acesso a ela, quis dizer que via memberShip você talvez não consiga do jeito que você quer.

    Mas como te falei você pode usar o ADO.NET para buscar no banco de dados. Aqui esta a consulta SQL.

    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString);
                con.Open();
                //pegar o sql no site informado, ela e muito grande :)
                var sql = "";
    
                SqlDataAdapter Adapter = new SqlDataAdapter(sql,con);
                DataSet ds = new DataSet ();
                Adapter.Fill(ds);
                con.Close();
                GridView1.DataSource = ds;
                GridView1.DataBind();

    att.

    segunda-feira, 26 de novembro de 2012 13:26
    Moderador
  • Esse é o problema... eu não tenho acesso a tabela aspnet_UsersInRoles..... estou utilizando entity framework.... e tentei usar a tabela de usuários e permissões mais a UsersInRoles.... para buscar os usuários com suas respectivas permissões

    segunda-feira, 26 de novembro de 2012 13:57
  • Você está usando Entity FrameWork DataBaseFirst?

    você não mapeou a UsersInRoles?


    segunda-feira, 26 de novembro de 2012 14:24
    Moderador
  • seleciono ela... mas ela não aparece no meu arquivo .edmx, sendo que quando eu dou um add.. essa tabela não aparece, só que vendo o banco no server explore aparece essa tabela, e tenho um user e roles gravado.... e a tabela tá preenchida...

    Não sei o que esta ocorrendo....

     
    segunda-feira, 26 de novembro de 2012 14:33
  • Fiz todo procedimento novamente essa tabela não entra, mesmo selecionada....

    segunda-feira, 26 de novembro de 2012 15:05
  • É realmente ele não veio, essa tabela so tem 2 chaves primarias também pode ser por causa disso.

    Consegui fazer aqui,

    Criei uma classe Members

    public class Members
        {
            public string Nome { get; set; }
            public string role { get; set; }
    
            public Members(string nome, string role) 
            {
                this.Nome = nome;
                this.role = role;
            }
        }

    Agora no Form_Load

    string[] Role = Roles.GetAllRoles();
    
                List<Members> collection = new List<Members>();
    
                foreach (string userName in Role)
                {
                    var UserInRole = Roles.GetUsersInRole(userName);
    
                    foreach (var item in UserInRole)
                    {
                        collection.Add(new Members(item,userName));
                    }
                }
    
                GridView1.DataSource = collection;
                GridView1.DataBind();

    • Marcado como Resposta Marcos Bazilio terça-feira, 27 de novembro de 2012 14:36
    terça-feira, 27 de novembro de 2012 14:19
    Moderador
  • Valeu Wellington,

    kra, resolvi chamando a view.... mas obrigado pelo empenho... 

    terça-feira, 27 de novembro de 2012 14:37