Se estiver usando o ASP.NET Core 1 ou 2, você pode fazer isso com Microsoft.AspNetCore.WebUtilities.QueryHelpers
o pacote Microsoft.AspNetCore.WebUtilities .
Se você estiver usando o ASP.NET Core 3.0 ou superior, WebUtilities
agora faz parte do SDK do ASP.NET e não requer uma referência de pacote nuget separada.
Para analisá-lo em um dicionário:
var uri = new Uri(context.RedirectUri);
var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query);
Observe que, ao contrário ParseQueryString
de System.Web, isso retorna um dicionário do tipo IDictionary<string, string[]>
no ASP.NET Core 1.x ou IDictionary<string, StringValues>
no ASP.NET Core 2.x ou superior, portanto, o valor é uma coleção de strings. É assim que o dicionário lida com vários parâmetros de string de consulta com o mesmo nome.
Se quiser adicionar um parâmetro à string de consulta, você pode usar outro método em 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);
Usando .net core 2.2, você pode obter a string de consulta usando
var request = HttpContext.Request;
var query = request.query;
foreach (var item in query){
Debug.WriteLine(item)
}
Você obterá uma coleção de pares chave: valor - como este
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
Microsoft.AspNet.WebUtilties
pode ser aMono.HttpUtility
biblioteca .