Fórum controle CreateUserWizard #377984
20/05/2010
0

Carlos Nogueira
Curtir tópico
+ 0Posts
20/05/2010
Fabio Mans
Resposta
Pelo que eu vi acredito que sim
Seguinte este meu tutorial http://www.aspneti.com.br/Customizando+o+Membership+e+Role+Provider+344,0.aspx
Se você tentar alterar os parâmetros do método CreateUser acusa erro. Outra idéia é criar um outro método e não utilizar o CreateUser.
public override MembershipUser CreateUser(string ramal,string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
throw new NotImplementedException();
}
2 - Minha outra dúvida é, no web.config, define para o provider do membership o atributo passwordFormat="Hashed" mas ao ver o valor do parâmetro password, a senha estava descriptografada. Por eu ter herdado a classe MembershipProvider e ter sobrescrito o método CreateUser(), terei que fazer a criptografia da senha manualmente?
Post seu Web.Config, mas para adiantar você precisa de uma Key, veja um exemplo
<membership defaultProvider="News_MembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<add name="News_MembershipProvider" connectionStringName="LocalSqlServer" applicationName="/" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Encrypted" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership>
<machineKey validationKey="287C5D125D6B7E7223E1F719E3D58D17BB967703017E1BBE28618FAC6C4501E910C7E59800B5D4C2EDD5B0ED98874A3E952D60BAF260D9D374A74C76CB741803" decryptionKey="5C1D8BD9DF3E1B4E1D01132F234266616E0D5EF772FE80AB" validation="SHA1"/>
<siteMap defaultProvider="News_SiteMapProvider" enabled="true">
http://weblogs.asp.net/owscott/archive/2005/05/11/406550.aspx
http://www.eggheadcafe.com/articles/GenerateMachineKey/GenerateMachineKey.aspx
Fabio
===================================================================
Boa tarde! Tenho uma classe chamada Usuario que herda da classe MembershipProvider. Não uso as tabelas do aspnet para autenticação, tenho tabelas próprias já criadas no banco de dados para armazenar os dados do usuário. Em uma página, estou tentando fazer uso do controle CreateUserWizard para inserção e atualização dos dados do usuário na minha tabela do banco de dados. Existem alguns campos que preciso acrescentar e não pode ser colocado para preenchimento em outros passos do controle, precisa estar junto onde preenche login, senha, e-mail e etc. Quando o usuário clica no botão "Create User", ele passa para o método herdado CreateUser () que está na minha classe Usuario. Para eu passar demais informações além do que é passado por parâmetro no método CreateUser(), a única maneira é eu ter propriedades estaticas na minha classe e fazer isso no evento CreatingUser do controle CreateUserWizard()? Minha outra dúvida é, no web.config, define para o provider do membership o atributo passwordFormat="Hashed" mas ao ver o valor do parâmetro password, a senha estava descriptografada. Por eu ter herdado a classe MembershipProvider e ter sobrescrito o método CreateUser(), terei que fazer a criptografia da senha manualmente? Fico no aguardo! Obrigado pela atenção!
Gostei + 0
20/05/2010
Carlos Nogueira
<add name="ConexaoSQL" connectionString="Data Source=192.168.10.14;Initial Catalog=UBIKTemplate;Integrated Security=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<roleManager enabled="true"
defaultProvider="PerfilProvider"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All">
<providers>
<clear />
<add connectionStringName="ConexaoSQL"
applicationName="UBIK"
name="PerfilProvider"
type="UBIK.Library.BLL.Perfil" />
</providers>
</roleManager>
<membership defaultProvider="UsuarioProvider">
<providers>
<add connectionStringName="ConexaoSQL"
minRequiredPasswordLength="3"
minRequiredNonalphanumericCharacters="2"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
passwordFormat="Hashed"
applicationName="UBIK"
name="UsuarioProvider"
type="UBIK.Library.BLL.Usuario" />
</providers>
</membership> Fico no aguardo. Obrigado!
Gostei + 0
20/05/2010
Fabio Mans
Fabio
Gostei + 0
21/05/2010
Carlos Nogueira
Gostei + 0
21/05/2010
Fabio Mans
https://www.devmedia.com.br/articles/post-11713-Curso-Online-Forms-Authentication-e-Roles-Aula-I-Apresentando-o-objetivo-do-projeto.html
Ele é completo, eu falo tudo sobre Roles, Autenticação, permissão sem o Membership, que é o ideal se você tem as suas tabelas de usuários como é o seu caso, depois me diga o que acha.
Fabio
Gostei + 0
21/05/2010
Carlos Nogueira
Gostei + 0
05/07/2010
Carlos Nogueira
Antes fazia do jeito que você mencionou no curso, usava uma Session, e atribuia para ela meu objeto Usuario, e a partir dai, tinha todas as informações do usuário nessa Session, para não ter que acessar o banco várias vezes. Fico no aguardo. Obrigado!
Gostei + 0
05/07/2010
Carlos Nogueira
Será que tem algo na minha master page que está faltando, que eu esqueci de acrescentar?
Obrigado!
Gostei + 0
12/07/2010
Fabio Mans
Fabio
Gostei + 0
12/07/2010
Carlos Nogueira
Gostei + 0
28/07/2010
Fabio Mans
Gostei + 0
28/07/2010
Carlos Nogueira
Gostei + 0
28/07/2010
Fabio Mans
Por exemplo
No cook eu tenho a matricula e o perfil
Snippetprivate void CriaTicket(AutenticacaoViewModel viewModel)
{
string roles = string.Format(",", viewModel.Matricula.Trim(), viewModel.Perfil);
FormsAuthenticationUtil.RedirectFromLoginPage(string.Format(" - ", viewModel.Colaborador.Trim(),viewModel.Perfil), roles, true);
}
Para recuperar
Snippetpublic static class AcessoColaborador
{
/// <summary>
/// 0 - Matricula / 1 - Perfil
/// </summary>
/// <param name="posicao"></param>
/// <returns></returns>
public static string MatriculaPerfil(Posicao posicao)
{
string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie authCookie = HttpContext.Current.Request.Cookies.Get(cookieName);
string dados = string.Empty;
FormsAuthenticationTicket authTicket = null;
if (authCookie != null) authTicket = FormsAuthentication.Decrypt(authCookie.Value);
if (authTicket != null)
{
string[] roles = authTicket.UserData.Split(new char[] { ',' });
dados = roles[(int) posicao];
}
return dados;
}
}
}
public enum Posicao
{
Matricula,
Perfil,
IdCentroCusto,
CentroCusto
}
Quando eu quero pegar o id dele eu faço o seguinte (aspx)
SnippetSnippetint matricula = int.Parse(AcessoColaborador.MatriculaPerfil(Posicao.Matricula));
Não uso session, deixo no cook
Fabio
Gostei + 0
28/07/2010
Carlos Nogueira
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)