从原始URL提取用户名和密码

时间:2014-07-03 15:46:16

标签: c# url query-string

我有一个接受字符串参数的web服务。参数将始终是原始URL。用户使用用户名,requestid,选项yes或no向我发送原始URL。例如:

http://bookReport/request.aspx?user=abc&password=password&request=1&option=yes

我正在创建一个Web请求并传递url,如下所示。

var request = (HttpWebRequest)WebRequest.Create(url);
var user = request.RequestUri.Query.ToString();
string[] p = Regex.Split(user, "password=");
string[] password = Regex.Split(p[1], "&request=");

如何在不使用Regex.Split方法的情况下获取用户名,密码,请求和选项?

3 个答案:

答案 0 :(得分:1)

string userName = request.QueryString["user"];
string password = request.QueryString["password"];

答案 1 :(得分:1)

您可以使用Request.QueryString函数访问查询字符串变量,如下所示

    string userName = Request.QueryString["user"];
    string password = Request.QueryString["password"];
    string request = Request.QueryString["request"];
    string option = Request.QueryString["option"];

通过查看您的代码,我们获得了另一种从字符串中检索查询字符串值的方法。您可以使用以下代码

            Uri uri = new Uri(url);
            var values= HttpUtility.ParseQueryString(uri.Query);
            string userName = values["user"];
            string password = values["password"];
            string request = values["request"];
            string option = values["option"];

答案 2 :(得分:1)

有些人建议您可以通过Request对象的QueryString索引器访问查询字符串。该索引器出现在System。 Web .HttpRequest中,有问题的对象是System。 Net .HttpWebRequest。它们是非常不同的东西。 HttpUtility类将为您解析查询字符串中的参数:

    Uri uri = new Uri("http://bookReport/request.aspx?user=abc&password=password&request=1&option=yes");        
    var qs = HttpUtility.ParseQueryString(uri.Query);

.Net Fiddle here