如何从URL获取用户名和密码

时间:2014-07-23 16:43:44

标签: c# asp.net

用户名和密码来自以下网址:

https://theuser:thepassword@localhost:20694/WebApp

3 个答案:

答案 0 :(得分:3)

创建Uri,然后获取UserInfo属性:

var uri = new Uri("https://theuser:thepassword@localhost:20694/WebApp");
Console.WriteLine(uri.UserInfo); // theuser:thepassword

如果有必要,您可以在:上拆分,如下所示:

var uri = new Uri("https://theuser:thepassword@localhost:20694/WebApp");
var userInfo = uri.UserInfo.Split(':');
Console.WriteLine(userInfo[0]); // theuser
Console.WriteLine(userInfo[1]); // thepassword

请注意,如果您尝试在ASP.NET请求的上下文中获取当前用户,则最好使用提供的API,例如HttpContext.User

var userName = HttpContext.Current.User.Identity.Name;

或者,如果这是在网络表单中,只需:

protected void Page_Load(object sender, EventArgs e)
{
    Page.Title = "Home page for " + User.Identity.Name;
    }
    else
    {
        Page.Title = "Home page for guest user.";
    }
}

至于密码,我建议您在用户通过身份验证后不要直接处理密码。

答案 1 :(得分:0)

var str = @"https://theuser:thepassword@localhost:20694/WebApp";
var strsplit = str.Split(new char[] {':', '@', '/'};
var user = strsplit[1];
var password = strsplit[2];

答案 2 :(得分:0)

您可以使用以下方法获取当前的uri

string uri = HttpContext.Current.Request.Url.AbsoluteUri; //as u targeted .net

然后将其解析为普通字符串。

您将收到以下字符串: https://theuser:thepassword@localhost:20694/WebApp

您可以通过将字符串分成几部分来获取您要搜索的信息。

        var uri = "https://theuser:thepassword@localhost:20694/WebApp";
        var currentUriSplit = uri.Split(new [] { ':', '@', '/' });
        var user = currentUriSplit[3];
        var password = currentUriSplit[4];