Se usi ASP.NET Core 1 o 2, puoi farlo con Microsoft.AspNetCore.WebUtilities.QueryHelpers
il pacchetto Microsoft.AspNetCore.WebUtilities .
Se si usa ASP.NET Core 3.0 o versione successiva, WebUtilities
ora fa parte di ASP.NET SDK e non richiede un riferimento al pacchetto nuget separato.
Per analizzarlo in un dizionario:
var uri = new Uri(context.RedirectUri);
var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query);
Si noti che a differenza ParseQueryString
di System.Web, restituisce un dizionario di tipo IDictionary<string, string[]>
in ASP.NET Core 1.x o IDictionary<string, StringValues>
ASP.NET Core 2.x o versione successiva, quindi il valore è una raccolta di stringhe. Questo è il modo in cui il dizionario gestisce più parametri della stringa di query con lo stesso nome.
Se desideri aggiungere un parametro alla stringa di query, puoi utilizzare un altro metodo su QueryHelpers
:
var parametersToAdd = new System.Collections.Generic.Dictionary<string, string> { { "resource", "foo" } };
var someUrl = "http://www.google.com";
var newUri = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(someUrl, parametersToAdd);
Utilizzando .net core 2.2 è possibile ottenere la stringa di query utilizzando
var request = HttpContext.Request;
var query = request.query;
foreach (var item in query){
Debug.WriteLine(item)
}
Otterrai una raccolta di coppie chiave: valore, come questa
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
Microsoft.AspNet.WebUtilties
potrebbe essere laMono.HttpUtility
libreria .