Si está utilizando ASP.NET Core 1 o 2, puede hacerlo con Microsoft.AspNetCore.WebUtilities.QueryHelpers
el paquete Microsoft.AspNetCore.WebUtilities .
Si usa ASP.NET Core 3.0 o superior, WebUtilities
ahora forma parte del SDK de ASP.NET y no requiere una referencia de paquete nuget separada.
Para analizarlo en un diccionario:
var uri = new Uri(context.RedirectUri);
var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query);
Tenga ParseQueryString
en cuenta que, a diferencia de System.Web, devuelve un diccionario de tipo IDictionary<string, string[]>
en ASP.NET Core 1.x, o IDictionary<string, StringValues>
en ASP.NET Core 2.xo posterior, por lo que el valor es una colección de cadenas. Así es como el diccionario maneja múltiples parámetros de cadena de consulta con el mismo nombre.
Si desea agregar un parámetro a la cadena de consulta, puede usar otro método en 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 puede obtener la cadena de consulta usando
var request = HttpContext.Request;
var query = request.query;
foreach (var item in query){
Debug.WriteLine(item)
}
Obtendrá una colección de pares clave: valor, como este
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
Microsoft.AspNet.WebUtilties
puede ser laMono.HttpUtility
biblioteca .