2014-05-24 2 views
0

내 자식 서버에 푸시 된 로컬 자식에 대한 정보를 얻으려고하므로 권한 부여에 사용자 이름을 사용할 수 있으므로 사용자는 비밀번호를 입력해야합니다. 이 정보를 얻을 수 없어서 어떻게이 문제를 해결할 수 있습니까? 나는, 어쩌면 누군가가 나를 도울 수 있도록 라이브러리를 사용하고 나는이 내가 서버에 자식 요청을 얼마나 당신서버에 푸시 된 자식 설정 사용자 이름

에서 어떤 도움을 주셔서 감사합니다 것

public ActionResult Smart(string username, string project, string service, string verb) 
    { 
     switch (verb) 
     { 
      case "info/refs": 
       return InfoRefs(username, project, service); 
      case "git-upload-pack": 
       return ExecutePack(username, project, "git-upload-pack"); 
      case "git-receive-pack": 
       return ExecutePack(username, project, "git-receive-pack"); 
      default: 
       return RedirectToAction("Tree", "Repository", new { Name = project }); 
     } 
    } 
+0

실제로 ** 속성을 얻으려고합니까 ** ** –

+0

속성을 얻으면 무엇을 의미합니까? 너 나 설명 할 수있어? 내가 사용자 이름, 프로젝트, 서비스 또는 동사를 얻는 곳을 의미한다면, 그것은 내 라우팅에서 온 것입니다. – aji

답변

1

자식의 이름 같은 건 없다 . 각 커밋에 대한 작성자와 커미터에 대한 서명이 있으며 사용자가 인증 한 모든 것이 있습니다.

누가 밀어 넣기를 시작했는지 알 수있는 유일한 방법은 git 프로토콜 앞에 넣는 인증 레이어에 요청하는 것입니다. HTTP를 사용하여 저장소를 제공하는 경우 SSH를 사용하는 경우 SSH 라이브러리에서 해당 정보가 HTTP 라이브러리에 저장됩니다.

+0

미안 해요, 나는 커미터의 서명을 의미합니다. 당신은 내가 사용자가 단지 암호를 입력하도록하고 싶기 때문에 HTTP 라이브러리에서 어떻게 가져올 수 있는지 예제를 줄 수 있겠지만, 사용자 이름은 자신의 로컬 git config에서왔다. 나는 그들의 전역 설정 사용자 이름에서 이메일을 가지고있다. – aji

+0

그것들은 두 가지 개별 관심사이다. . 인증에 사용한 사용자 이름을 원할 경우 HTTP 라이브러리를 사용합니다. 커미터를보고 싶다면 데이터가 생길 때까지 기다렸다가 유효한 git 팩인지 확인해야합니다. 그런 다음 데이터를 볼 수 있습니다. 힘내는 네트워크 작업에 대한 사용자/이메일 정보를 전혀 보지 않을 것이다. –

+0

그래서 내가 git 서버에 밀어 넣기 전에 사용자를 인증하기위한 http 응답에 사용자 이름/이메일을 로컬 git의 사용자 이름으로 넣을 수 없다는 것을 의미합니까? – aji