2013-07-27 8 views
-2

영어가 부족합니다. 나는 이것을 유감스럽게 생각한다.인증 필요 - Windows 서버의 Python CGI

plesk 패널이있는 Wndows 서버를 구입했습니다. FTP python 스크립트에로드됩니다. 사이트가 파이썬으로 작성 되었기 때문입니다.

사이트에 들어가면 "인증 필요"가 표시됩니다. 하지만이 창문을보고 싶습니다. 모두가 사이트에 들어가서 CGI 스크립트를 실행할 수 있기를 바랍니다.

어떻게하면됩니까?

+0

죄송 BaseHTTPRequestHandler,하지만 난 이해가 안 돼요. –

답변

0

upd.you 질문을 다시 작성 하시겠습니까?

cgi는 stdout에 http 응답을 인쇄합니다. 먼저 헤더를 가져와야합니다. 'Authorization'헤더가있는 경우 로그인 및 비밀번호를 해독 할 수 있습니다. 해당 헤더 나 암호가 유효하지 않은 경우 401 응답을 보내십시오 기본 승인을 위해 '기본 영역 = \ "메시지 \"'가 포함 된 'WWW-Authenticate'헤더를 보냅니다. 또한 다이제스트, Ntlm 등 가능합니다.

브라우저가 401 응답을 받으면 사용자에게 암호를 묻습니다 (아약스도 아님), 서버가 요청한 방법으로 로그인 및 암호를 인코딩하고 'Authorization'헤더로 요청을 다시 보냅니다.

하지 CGI 코드 샘플, HTTP 서버에 대한 장식,

def login_required(f): 
def authenticate(self,*args,**kwargs): 

    if conf.get('noauth'): 
     return f(self,*args,**kwargs) 

    if self.headers.getheader('Authorization') : 
     cred = base64.b64decode(self.headers.getheader('Authorization').split(' ')[1]) 


     users = conf.get('users', []) 
     if cred in users: 
      self.creds = cred 
      return f(self,*args,**kwargs) 
#else 
    self.send_response(401) 
    self.send_header('WWW-Authenticate', 'Basic realm=\"Meter\"') 
    self.send_header('Content-type', 'text/html') 
    self.end_headers() 
    self.wfile.write('Not authenticated.') 
    return False 
return authenticate 
+0

감사합니다. 나는 시도 할 것이다. – user1898723