Salve,

ho un problemino che non riesco a capire come risolverlo;
ho realizzato un webApi mvc;
Ho creato un controller:

[Route("api/login/'{username}'/'{password}'")]
[HttpGet]
public string login(string username, string password)
{
}

come url vorrei passare una password contenenti tutti i caratteri es'#$#'; purtroppo un url come indicato sotto non lo accetta :
http://localhost:55586/api/login/'2554'/'pippo##'


come posso risolvere questo problema??


Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
non puoi usare l'hash (#) così com'è perché è un carattere speciale che in un URL delimita il frammento.
http://en.wikipedia.org/wiki/URI_scheme

Dovresti provare a fare l'URL encoding dell'hash, ovvero convertirlo in una sequenza "innocua" di caratteri equivalenti. Esempio, al posto di # prova con %23 come in questo esempio.
http://localhost:55586/api/login/'2554'/'pippo%23%23'

Qui trovi la tabella di conversione dei caratteri speciali.
http://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters

Attenzione perché potrebbe comunque non funzionarti.
IIS ha un modulo di Request filtering che impedisce proprio l'uso di certi caratteri.
http://www.iis.net/learn/extensions/url-rewrite-module/iis-request-filtering-and-url-rewriting

Io ti consiglio di far passare al client il suo username e password come corpo di una richiesta POST. Lì non hai limitazioni sul tipo di caratteri che puoi usare.

ciao,
Moreno

Enjoy learning and just keep making

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.