Avatar billede smileymans Praktikant
25. oktober 2009 - 18:51 Der er 8 kommentarer og
1 løsning

Problem med Æ Ø og Å i membership brugernavn C#.

Jeg har et problem med Æ Ø Å i brugernavne.

Oprettelsen er intet problem.. Problemet kommer først i mit administrationssystem, hvor jeg skal se detaljer, godkende og redigere brugerne.

Brugerne bliver vist i et gridview, og jeg har så lavet følgende kode i selected index changed:

  string UserName = GV_Users.SelectedRow.Cells[2].Text;
  MembershipUser myObject = Membership.GetUser(UserName);
  Response.Write(myObject.UserName);
  string UserID = myObject.ProviderUserKey.ToString();
  Response.Redirect("Userselected.aspx?UI=" + UserID);

Problemet er, hvis der er Æ Ø og Å i brugernavnet, så returnerer membership.getuser() null.
Hvis brugernavnet ikke indeholder danske tegn, så fungerer det hele fint.

Hvordan kommer jeg udenom det problem?
Avatar billede smileymans Praktikant
25. oktober 2009 - 19:46 #1
Kom nu eksperter.. bare lidt respons???
Avatar billede azerty Juniormester
25. oktober 2009 - 19:50 #2
Kan der være noget at hente her?

http://www.eksperten.dk/search?q=%E6+%F8+%E5
Avatar billede Syska Mester
25. oktober 2009 - 20:42 #3
Kan det have ngoet med HtmlUtility.HtmlEncode/HtmlDecode ?

Har du prøvet at lave en HtmlDecode på den string du tror er username ? og har du prøvet at køre det i Debug mode ? og hvad den den string indeholder du tror er username ?

// ouT
Avatar billede smileymans Praktikant
25. oktober 2009 - 22:02 #4
string UserName = GV_Users.SelectedRow.Cells[2].Text

indeholder hver gang det rigtige brugernavn. Har testet det på en response.write.

MembershipUser myObject = Membership.GetUser(UserName);

Det er den der fejler, når brugernavnet indeholder Æ Ø Å. Så finder den ikke membershipbrugeren og så returnerer ovenstående linie null.. Membership brugeren eksisterer dog, og en liste over brugere, vil også liste brugerne med danske tegn korrekt.
Avatar billede Syska Mester
25. oktober 2009 - 22:13 #5
Netop her du tager fejl ... fordi en Response.Write udskriver det rigtige kan det stadig godt være at den string indholde det forkerte ...

http://www.w3schools.com/tags/ref_entities.asp

dvs ...

"Æ" svarer til et Æ

dvs det kan sket du sammenligner:

"Æ" med "Æ" og det er jo ikke det samme ... derfor skal du lave en HtmlDecode for at "Æ" bliver til "Æ" ...

Håber det giver mening ...

ellers prøv også at lave en
if(dinStringMedUsername == "Åse")
{}
else
{}

Så kan du jo se om dine stringe er ens ...

Men jeg ville køre dit site i Debug mode og så sætte et break point, det er i hvert fald nemmere ....

// ouT
Avatar billede Syska Mester
25. oktober 2009 - 22:17 #6
Hvis der f.eks ikke bliver lavet
HtmlUtility.HtmlEncode("<jegerettag>");

Så vil du ikke se det i en browser, da < og > ikke bliver lave tom til deres tilsvarende html entity.

// ouT
Avatar billede smileymans Praktikant
26. oktober 2009 - 09:39 #7
Se det viste jeg så ikke :-D

Problemet er, at jeg ikke er hjemme ved min server, og fandt ud af at min ftp ikke virker ordentligt. Det vil sige at jeg af en eller anden mærkelig grund(sikkert fordi den er i brug) ikke kan hente min database fra serveren. så den eneste db jeg har ligger på min server. Så hver gang jeg tester, så ligger jeg den aspx side jeg har rettet op på serveren og tester den. Det er derfor jeg ikke kan køre i debug mode før jeg kommer hjem, hvilket jeg gør senere idag :-D

Men jeg vil helt klart lige prøve at debugge når jeg kommer hjem og se hvad username egentlig indeholder. :-D
Avatar billede smileymans Praktikant
29. oktober 2009 - 18:50 #8
Så fik jeg kigget på det, og det viste sig selvfølgelig, at brugernavnet indeholdte sjove tegn istedet for Æ Ø Å :-D

httputility.htmldecode løste problemet så buzzzz smid lige et svar, så du kan få point :-D
Avatar billede Syska Mester
29. oktober 2009 - 19:42 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester