是否可以从格式如下的 http url 获取 asp.net (mvc3) 中的用户名/密码?
http://user:password@example.com/path
还是只能使用 ftp 协议?
是否可以从格式如下的 http url 获取 asp.net (mvc3) 中的用户名/密码?
http://user:password@example.com/path
还是只能使用 ftp 协议?
您示例中的用户名和密码使用 HTTP 基本身份验证 - 它们不是 URL 的一部分,而是包含在标头信息中。您可以在 ASP.NET 中访问此信息,请参阅本文:使用 Asp.Net WebAPI 进行基本身份验证
public class BasicAuthenticationAttribute : System.Web.Http.Filters.ActionFilterAttribute {
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext) {
if (actionContext.Request.Headers.Authorization == null){
// No Header Auth Info
actionContext.Response = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized);
} else {
// Get the auth token
string authToken = actionContext.Request.Headers.Authorization.Parameter;
// Decode the token from BASE64
string decodedToken = Encoding.UTF8.GetString(Convert.FromBase64String(authToken));
// Extract username and password from decoded token
string username = decodedToken.Substring(0, decodedToken.IndexOf(":"));
string password = decodedToken.Substring(decodedToken.IndexOf(":") + 1);
}
}
}