2012-10-20 2 views
0

http : //www.windowsazure.com/media/devcenter/pcgi-bin/gpg/html#html#http://www.windowsazure.com/media/devcenter/files.html 위와 같은 형식으로되어있는 http url에서 asp.net (mvc3)의 사용자 이름/암호를 가져올 수 있습니까?http url에서 성/암호 얻기

http://user:[email protected]/path

또는 그것은 FTP 프로토콜 만 가능하다?

답변

2

예제의 사용자 이름과 비밀번호는 HTTP 기본 인증을 사용합니다. URL의 일부가 아니며 헤더 정보에 포함되어 있습니다. ASP.NET에서이 정보에 액세스 할 수 있습니다.이 문서를 참조하십시오. Basic Authentication with 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); 
     } 
    } 
} 
+0

이것은 어리석은 질문 일 수 있습니다. 그러나 OnActionExecuting 화재는 언제 발생합니까? – Tom

+0

http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.onactionexecuting(v=vs.98).aspx - Controller 클래스의 모든 Action 메서드에서 호출됩니다. 내 ASP.NET 지식은 그 이후로 약간 날짜가 지났지 만, 나는 꽤 오랫동안 그것을 사용하지 않았습니다 ... – doublesharp

관련 문제