155 messaggi dal 06 marzo 2007
www.fdigweb.it
Ciao a tutti,
Ho creato un MembershipProvider custom gestito con i Linq,
utilizzando il metodo CreateUser mi creo l'utente, il problema è il seguente, dopo la creazione dell'utente, si gestisce automaticamente il metodo ValidateUser che logga l'utente, il mio scopo non è loggare l'utente dopo la creazione, ma l'utente quando viene creato riceve un email di conferma creazione, e dopo l'utente si logga.
Problema come evito il metodo ValidateUser dopo la creazione dell'utente?
Non ho idea da come viene richiamato.

Grazie a tutti.

*********************************
****** www.fdigweb.it ******
*********************************
710 messaggi dal 13 novembre 2008
Contributi
bisognerebbe sapere qualcosa di più di questo provider, lo hai implementato te da zero, lo hai preso da qualche parte, hai in mano il progetto?

in genere, se è costruito derivandolo da MembershipProvider, dovrebbe essere presente un metodo tipo

public override MembershipUser CreateUser(string username, string password.....)
{
...
}


e un altro

public override bool ValidateUser(string username, string password)
{
...
}

quindi o CreateUser richiama automaticamente ValidateUser, ma mi pare strano, oppure è fatto a livello UI, di pagina cioè, dove dopo il Create c'è il richiamo a Validate
Modificato da teo prome il 16 dicembre 2010 06.49 -
155 messaggi dal 06 marzo 2007
www.fdigweb.it
Ciao grazie della risposta.
Il mio MembershipProvider è il seguente,

public override bool ValidateUser(string username, string password)
{
using (db_EntityFramework ctx = new db_EntityFramework())
{
string password_encode = EncodePassword(password);
var utenti = (from us in ctx.tbl_user where us.username == username && us.password == password_encode select us).Count();
return Convert.ToBoolean(utenti);

}
}

public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
using (db_EntityFramework ctx = new db_EntityFramework())
{
string password_encode = EncodePassword(password);
// creazione dell'utente
MembershipUser u = new MembershipUser(this.Name, username, System.Guid.NewGuid(), email,
passwordQuestion, string.Empty, true, false, DateTime.Now, DateTime.Now,
DateTime.Now, DateTime.Now, DateTime.Now);

tbl_user user = new tbl_user();
user.id_user = System.Guid.NewGuid();
user.username = username;
user.password = password_encode;
user.password_question = passwordQuestion;
user.password_answer = passwordAnswer;
user.data_creazione = DateTime.Now;
user.email = email;
ctx.AddTotbl_user(user);
try
{
ctx.SaveChanges();
}
catch (Exception e)
{
status = MembershipCreateStatus.ProviderError;
return null;
}

status = MembershipCreateStatus.Success;
return u;
}
}

*********************************
****** www.fdigweb.it ******
*********************************
710 messaggi dal 13 novembre 2008
Contributi
ok mi pare tutto corretto e il metodo CreateUser non richiama nulla, ti ritorna la Membership appena create e lo status (come out) o null

nel CreateUser cambierei questo


try
{
ctx.SaveChanges();
}
catch (Exception e)
{
status = MembershipCreateStatus.ProviderError;
return null;
}

status = MembershipCreateStatus.Success;
return u;

così

try
{
ctx.SaveChanges();
status = MembershipCreateStatus.Success;
return u;
}
catch (Exception e)
{
status = MembershipCreateStatus.ProviderError;
return null;
}

ovviamente non è lì il tuo problema


allora probabilmente a livello di pagina dopo la creazione dell'utente viene richiamato il ValidateUser per il log automatico

cerca nella aspx aspx.cs e vedrai che è lì

ci sarà qualcosa del tipo

...CreateUser(...)

if(...MembershipCreateStatus.Success) ValidateUser(..)

ciao
155 messaggi dal 06 marzo 2007
www.fdigweb.it
ho cercato nell'aspx ho trovato che bisognava settare su false l'attributo LoginCreatedUser del controllo CreateUserWizard
Grazie dell'aiuto.

*********************************
****** www.fdigweb.it ******
*********************************
710 messaggi dal 13 novembre 2008
Contributi
ok, pensavo non avessi utilizzato CreateUserWizard!

bene, ciao!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.