Si vous utilisez ASP.NET Core 1 ou 2, vous pouvez le faire avec Microsoft.AspNetCore.WebUtilities.QueryHelpers
dans le package Microsoft.AspNetCore.WebUtilities .
Si vous utilisez ASP.NET Core 3.0 ou version ultérieure, WebUtilities
fait maintenant partie du SDK ASP.NET et ne nécessite pas de référence de package nuget distincte.
Pour l'analyser dans un dictionnaire:
var uri = new Uri(context.RedirectUri);
var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query);
Notez que contrairement ParseQueryString
à System.Web, cela renvoie un dictionnaire de type IDictionary<string, string[]>
dans ASP.NET Core 1.x, ou IDictionary<string, StringValues>
dans ASP.NET Core 2.x ou version ultérieure, la valeur est donc une collection de chaînes. C'est ainsi que le dictionnaire gère plusieurs paramètres de chaîne de requête avec le même nom.
Si vous souhaitez ajouter un paramètre à la chaîne de requête, vous pouvez utiliser une autre méthode sur 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);
En utilisant .net core 2.2, vous pouvez obtenir la chaîne de requête en utilisant
var request = HttpContext.Request;
var query = request.query;
foreach (var item in query){
Debug.WriteLine(item)
}
Vous obtiendrez une collection de paires clé: valeur - comme ceci
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
Microsoft.AspNet.WebUtilties
peut-être laMono.HttpUtility
bibliothèque .