Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Freitas

Customização de Membership

Recommended Posts

Bom dia pessoal,

 

Tenho um sistema em asp.net cujo banco tem varias tabelas, dentre elas a tabela EMPRESA que é relacionada com varias outras.

 

Para login uso a tabela padrao do asp.net que é a ASPNETDB.

 

Um cliente meu vai abrir uma nova empresa, portanto cadastrei essa nova empresa na tabela "EMPRESA" e preciso que cada usuario visualize somente dados da empresa em que trabalham, sendo que o dono da empresa deve conseguir visualizar os dados das 2 empresas.

 

Gostaria que ao fazer o login de usuario, aparecesse a empresa correspondente no canto da tela...

 

Alguem tem ideia de como fazer isso?

 

Obrigado,

 

André

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara adiciona na sua tabela empresa uma coluna pra armazenar o login do usuario, assim você saberá quem está logado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara adiciona na sua tabela empresa uma coluna pra armazenar o login do usuario, assim você saberá quem está logado.

 

Ivan, desculpa mas não entendi muito bem.

A tabela de usuarios e a tabela empresa estão em bancos diferentes, é possivel relacionar?

 

Você não quis dizer o inverso? tipo, adicionar uma coluna empresa na tabela de usuario?

 

E a questão do acesso aos dados de uma empresa específica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Citei da forma correta. Adiciona uma coluna na tabela empresa pra guardar o login do usuario, e depois você pode recuperar os dados da empresa logada, pois com uso do membership login do usuário está disponível em toda a aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Citei da forma correta. Adiciona uma coluna na tabela empresa pra guardar o login do usuario, e depois você pode recuperar os dados da empresa logada, pois com uso do membership login do usuário está disponível em toda a aplicação.

 

 

Mas Ivan... uma empresa tem varios usuarios... se eu adicionar uma coluna nesta na tabela empresa, cada empresa vai poder ter só 1 usuario?

 

e como vou relacionar empresa com usuario? sao 2 bancos de dados diferentes... EMPRESA está no banco que eu criei... e USUARIO está no ASPNETDB.

 

E como vou fazer pra o Usuario da Empresa 1 ter acesso só aos dados da Empresa 1?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só como fiz isso uma vez.

Tabela Empresa recebe o login do usuario admin da empresa.

Tabela Usuarios recebe o login de cada usuario e o ID da tabela empresa. Assim eu sempre saberei qual usuario e qual empresa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Ivan, entendi.

Vou tentar fazer dessa forma. O grande problema agora é que sao 2 bancos separados. Você sabe uma forma de pegar o codigo na tabela de usuarios e inserir no COD_USER de outra tabela de outro banco?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja de novo o que eu escrevi ->

Tabela Empresa recebe o login do usuario admin da empresa.

Tabela Usuarios recebe o login de cada usuario e o ID da tabela empresa. Assim eu sempre saberei qual usuario e qual empresa.

Na lógica as tabelas Empresas e Usuário devem ficar no mesmo banco e somente o login do usuario q está no outro banco que vai vim para o banco um, onde o login como falei está disponivel em toda a aplicação asp.net.

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja de novo o que eu escrevi ->

Tabela Empresa recebe o login do usuario admin da empresa.

Tabela Usuarios recebe o login de cada usuario e o ID da tabela empresa. Assim eu sempre saberei qual usuario e qual empresa.

Na lógica as tabelas Empresas e Usuário devem ficar no mesmo banco e somente o login do usuario q está no outro banco que vai vim para o banco um, onde o login como falei está disponivel em toda a aplicação asp.net.

 

Certo, funcionou.

Mas fiz da seguinte maneira:

 

Criei um tabela chamada PERMISSAO que recebe o codigo da empresa e login do usuario, dessa maneira consigo liberar quantas empresas eu precisar para cada usuario. Essa tabela (PERMISSAO) é relacionada com várias outras tabelas, com todas que necessitam desse filtro empresa/usuario.

 

Nessas tabelas eu fiz um INNER JOIN filtrando somente dados da empresa e usuario logado.. fiz uns teste só... preciso melhorar algumas coisas...

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

André sobre a criação automatica do ASPNETDB, você pode adicionar as tabelas dentro do seu banco. sem necessidade de utilizar duas bases de dados.

basta localizar no menu iniciar Visual Studio Command Prompt (versão do seu VS) e quando abrir digitar aspnet_regsql, ele abre um assistente pra você adicionar o usu´srios dentro de qualquer banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

André sobre a criação automatica do ASPNETDB, você pode adicionar as tabelas dentro do seu banco. sem necessidade de utilizar duas bases de dados.

basta localizar no menu iniciar Visual Studio Command Prompt (versão do seu VS) e quando abrir digitar aspnet_regsql, ele abre um assistente pra você adicionar o usu´srios dentro de qualquer banco de dados.

 

Ivan, depois de criar a estrutura do aspnetdb dentro do meu banco de dados e adicionar os usuários, vou poder continuar inserindo os usuarios pelo administrador do asp.net? os próximos usuarios criados deverão ser adicionados pelo assistente ou vão automaticamente pra nova estrutura de usuarios?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim. basta informar no web.config qual connection deve ser utilizada.

 

Ivan, no web.config eu ja tenho a string direcionando para o meu banco... mas quando eu crio um usuario no adm do asp.net, ele cria o aspnetdb automatico...

 

Tenho outra duvida,vou colocar aqui mesmo para não criar outro topico... Preciso fazer um insert que pegue o codigo do usuario logado... mais ou menos como:

 

INSERT PERMISSAO(COD_EMP, COD_USER) VALUES (@COD_EMP, CODIGO USUARIO LOGADO?!)

 

Desculpa a amolação... mas valeu denovo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ivan, já relacionei as tabelas e no webconfig tenho somente uma string de conexao apontando para o unico banco de dados que tenho agora. Mesmo assim, ao criar um usuario no ASP.NET Web Admin.. o banco ASPNETDB é criado automaticamente na pasta app_data...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem q configurar o membership no web.config, posta ai como ta seu web.config. so a parte do membership.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite,

 

Segue codigo do webconfig:

 

<configuration>

<connectionStrings>

<add name="conexaoDados"

connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=BD_SALAO_BELEZA; User ID=sa; Password=senha"

providerName="System.Data.SqlClient"/>

 

 

 

</connectionStrings>

 

<system.web>

<roleManager enabled="false" />

<compilation debug="true" targetFramework="4.0" />

 

<authentication mode="Forms">

<forms name="frmLogin" loginUrl="~/Login/Login.aspx"/>

</authentication>

 

<authorization>

<deny users="?" />

</authorization>

 

</system.web>

 

<system.webServer>

<modules runAllManagedModulesForAllRequests="true"/>

</system.webServer>

 

 

</configuration>

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem q informar como vai funcionar o membership da uma lida em http://www.bufaloinfo.com.br/artigos/coluna32.asp

pra você entender e saber como funciona a parada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite,

 

Segui as orientaçoes do artigo enviado, criei a estrutura de usuarios no meu banco usando o ASPNET_REGSQL e alterei o web.config conforme instruçoes do artigo.

Porem, os usuarios criados no ASPNET ADMNISTRATOR continuam gerando um banco de dados ASPNETDB novo.Alguem sabe o que falta alterar??

Segue abaixo código do web.config:

 

<configuration>

<connectionStrings>

<add name="conexaoDados"

connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=BANCO; User ID=sa; Password=senha"

providerName="System.Data.SqlClient"/>

</connectionStrings>

 

<system.web>

<roleManager enabled ="true">

<providers>

<clear/>

<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="conexaoDados" applicationName="/Master" />

</providers>

</roleManager>

 

<webParts>

<personalization>

<providers>

<clear/>

<add connectionStringName="conexaoDados" name ="AspNetSqlPersonalizationProvider" type="System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider"/>

</providers>

</personalization>

</webParts>

 

<profile>

<providers>

<clear/>

<add name="AspNetSqlProfileProvider" connectionStringName="conexaoDados" applicationName="/Master" type="System.Web.Profile.SqlProfileProvider"/>

</providers>

</profile>

 

 

 

<compilation debug="true" targetFramework="4.0" />

 

<authentication mode="Forms">

<forms name="frmLogin" loginUrl="~/Login/Login.aspx"/>

</authentication>

 

<authorization>

<deny users="?" />

</authorization>

 

 

</system.web>

<system.webServer>

<modules runAllManagedModulesForAllRequests="true"/>

</system.webServer>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.