-2

我的英语很差。我对此感到抱歉。

我买了一台带有 plesk 面板的 Windows 服务器。我加载到 FTP python 脚本。因为该网站是用python编写的。

当我进入该站点时,我看到“需要身份验证”。但我想看看这个窗口。我希望每个人都可以进入该站点并运行到 cgi 脚本。

我怎样才能做到这一点?

4

1 回答 1

0

upd.you重写你的问题?

cgi 将 http 响应打印到标准输出。首先,您需要获取标题...如果标题“授权”存在,您可以从中解码登录名和密码。如果没有此类标头或密码无效,您必须:发送 401 响应发送包含“基本领域=\“消息\””的“WWW-Authenticate”标头以进行基本授权。也可能是 Digest、Ntlm 等。

如果浏览器收到 401 响应,它会询问用户密码(即使是 ajax),使用服务器要求的方法对登录名和密码进行编码,再次使用“授权”标头发送请求。

不是 CGI 代码示例,HTTPServer 的装饰器,BaseHTTPRequestHandler

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
于 2013-07-27T16:17:14.860 回答