Avatar billede thomasabcd Nybegynder
03. februar 2007 - 23:23 Der er 10 kommentarer og
1 løsning

encode punktum i url

Jeg har prøvet at bruge HttpUtility.UrlEncode til at encode en url, som indeholder punktum, men uden held. Nogen forslag?
Avatar billede dr_chaos Nybegynder
03. februar 2007 - 23:25 #1
Prøv med Server.HtmlEncode
Avatar billede thomasabcd Nybegynder
03. februar 2007 - 23:27 #2
Har jeg lige prøvet, men uden held.

Ingen af disse encoder:
        string d = HttpUtility.UrlPathEncode(".");
        string d0 = HttpUtility.UrlEncode(".");
        string d1 = HttpUtility.UrlEncodeUnicode(".");
        string d2 = HttpUtility.HtmlEncode(".");
        string d3 = Server.HtmlEncode(".");
Avatar billede dr_chaos Nybegynder
03. februar 2007 - 23:32 #3
Lader ikke til at man kan encode . i en url.
Hvordan sender du det med i din url ?
Hvordan ser urlen som ikke virker ud ?
Avatar billede erikjacobsen Ekspert
03. februar 2007 - 23:34 #4
Hvorfor skal den encodes?
Avatar billede thomasabcd Nybegynder
03. februar 2007 - 23:35 #5
Jeg har nogle URLs med brugernavne a la:
~/brugere/thomasabcd.aspx

Nu er der så en bruger, som har registreret sig med punktum i navnet (eks. "thomasabcd."). Det fører til:
~/brugere/thomasabcd..aspx og dermed en ugyldig URL.

Må hellere lave noget validering så brugeren ikke kan oprette sig med punktum. Er der andre specialtegn, som skal undgåes og er der en nem måde at tjekke for alle disse tegn på een gang? Jeg kunne forestille mig at "/",":" og andre ikke duer
Avatar billede thomasabcd Nybegynder
03. februar 2007 - 23:38 #6
Andre som nok ikke duer:
&
?
Avatar billede erikjacobsen Ekspert
03. februar 2007 - 23:39 #7
Brug en urlencode på alle værdier, så er den klaret. Og dit punktumproblem er vist mere er applikationsproblem. Men hvis du ukritisk bruge "etellerandetnavn.aspx" fra URL-en så har du måske et sikkerhedshul.
Avatar billede thomasabcd Nybegynder
03. februar 2007 - 23:41 #8
Jeg bruger det til URL-rewrite, og jeg tjekker om brugeren eksisterer inden jeg går videre. URLen omskrives til user.aspx?username=BRUGERNAVN
                MembershipUser user = Membership.GetUser(Request.QueryString["username"]);
                if (user != null)
                {
DO SOMETHING
}
Avatar billede thomasabcd Nybegynder
03. februar 2007 - 23:42 #9
Jeg antager, at ovenstående "løser" mit sikkerhedsproblem, da det kun er rigtige brugernavne, der kommer igennem.

Vil det sige, at det kun er punktum, der er problematisk, men at alle andre vil blive encodet via ovenstående URLENcode?
Avatar billede erikjacobsen Ekspert
03. februar 2007 - 23:45 #10
Hvis din URL-rewrite skruet rigtig sammen, kunne den jo tillade punktum i brugernavne også. Men nok en bedre idé ikke at tillade for meget gejl.  Og godt nok du tjekker som du gør (formentlig).
Avatar billede thomasabcd Nybegynder
12. august 2007 - 19:01 #11
lukker
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