Usuário com melhor resposta
utilizando o aspnet_regsql.exe

Pergunta
-
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
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.
- Editado welington jrModerator quinta-feira, 15 de novembro de 2012 16:54
- Sugerido como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator sexta-feira, 16 de novembro de 2012 11:01
-
-
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.
- Editado welington jrModerator segunda-feira, 19 de novembro de 2012 23:43
-
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
-
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.
-
-
-
-
-
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
-
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.
- Editado welington jrModerator segunda-feira, 26 de novembro de 2012 12:25
-
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...???
-
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.
- Editado welington jrModerator segunda-feira, 26 de novembro de 2012 13:28
-
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
-
Você está usando Entity FrameWork DataBaseFirst?
você não mapeou a UsersInRoles?
- Editado welington jrModerator segunda-feira, 26 de novembro de 2012 14:26
-
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....
-
-
É 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
-