Problem med Login .NET kontrol og validering
Hej eksperter,Jeg har problemer med validering i min login kontrol på mit webhotel.
Jeg bruger Login .NET komponenten til login. Ud fra denne har jeg defineret en UserWebControl som jeg trækker ind på mine webforms. Den har jeg kaldte LoginKontrol.ascx. Validering af email og adgangskode foregår i LoginKontrol.ascx.cs fil. Fordelen ved dette er jeg kan genbruge Login kontrollen på flere webforms uden at gentage kode. Mine UserWeb kontroller ligge i en del mappe som jeg har kaldt "UserWebControls". Mine webforms ligger i en mappe som hedder "Webpages" som er på samme niveau som mappen "UserWebControls".
Sådan ser valideringen ud i LoginKontrol.ascx.cs
#region "Log ind"
protected void LoginBoks_LoggingIn(object sender, LoginCancelEventArgs e)
{
String Email;
String Adgangskode;
Email = this.LoginBoks.UserName;
Adgangskode = this.LoginBoks.Password;
this.autentificer(Email, Adgangskode);
}
#endregion
#region "Definition autentificer"
private void autentificer(String email, String adgangskode)
{
String Navn;
String Adresse;
String Telefon;
String Adgangskode;
String Tilstand;
String Aktiveringskode;
DateTime DatoRegistreret;
int KundeId;
bool ErEmailGyldig;
bool FindesBruger;
bool ErBrugerAktiv;
Navn = "";
Adresse = "";
Telefon = "";
Adgangskode = "";
Tilstand = "";
Aktiveringskode = "";
DatoRegistreret = new DateTime();
KundeId = 0;
ErEmailGyldig = false;
FindesBruger = false;
ErBrugerAktiv = false;
ErEmailGyldig = EValidering.erGyldigEmail(email);
if (ErEmailGyldig)
{
FindesBruger = EAutencitet.findesBruger(email, ref Adgangskode,
ref Navn, ref Adresse, ref Telefon, ref DatoRegistreret,
ref Tilstand, ref Aktiveringskode, ref KundeId);
if (FindesBruger)
{
ErBrugerAktiv = EAutencitet.brugerAktiv(Tilstand);
if (ErBrugerAktiv)
{
if (adgangskode.Equals(Adgangskode))
{
Session.Add(TypeDescriptor.GetProperties(typeof(Kunde))[0].Name, KundeId);
Session.Add(TypeDescriptor.GetProperties(typeof(Kunde))[1].Name, Navn);
Session.Add(TypeDescriptor.GetProperties(typeof(EKunde))[2].Name, email);
FormsAuthentication.RedirectFromLoginPage(email, false);
Response.Redirect(Page.Request.Url.ToString());
}
else
{
this.LoginBoks.FailureText = EMeddelelse.EMAIL_ADGANGSKODE_STEMMER_IKKE;
}
}
else
{
this.LoginBoks.FailureText = EMeddelelse.LOGIN_EJ_AKTIVERET;
}
}
else
{
this.LoginBoks.FailureText = EMeddelelse.EMAIL_FINDES_IKKE;
}
}
else
{
this.LoginBoks.FailureText = EMeddelelse.INDTAST_GYLDIG_EMAIL;
}
}
#endregion
Når jeg logger ind med korrekt email og adgangskode går alting godt.
Men når jeg f.eks. forsøger at logge ind med en email der ikke findes i min database får jeg følgende fejlmeddelelses:
Server Error in '/' Application.
--------------------------------------------------------------------------------
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
Fejlen er lidt meningsløs da jeg forbinder til en MySQL database.
Jeg får ikke nogen fejl når jeg kører min webapplikation lokalt på min egen udviklingsmaskine med forbindelse op til databasen på mit webhotel. I øvrigt forekommer fejlen kun når jeg bruger .NET Login komponenter. Det gælder også PasswordRecovery .NET komponentet.
Jeg har testet ovenstående kode i webform. Her er et direkte link:
http://book-frisoer.dk/Webpages/TestSide.aspx
Her går det godt. Prøv evt. at logge ind med vilkårlig emailadresse.
Jeg har kontaktet mit webhotel. De kunne ikke finde fejl på deres server og de tror der er fejl i min kode eller i mine referencer, så jeg er i en lidt håbløs situation.
Håber nogen derude kan hjælpe.
På forhånd tak.