2 回答

TA贡献1796条经验 获得超4个赞
您可以使用一个会话来存储用户名和密码以及一个标志,用于指定用户已完成前两个步骤:
import flask
app = flask.Flask(__name__)
app.secret_key = 'something'
def validate_upload(f):
def wrapper():
if 'completed' not in flask.session or not flask.session['completed']:
return flask.redirect('/')
return f()
return wrapper
@app.route('/', methods = ['GET'])
def home():
html = """
<form action='/second' method = 'POST'>
<input type='text' name='username'>
<input type='password' name='password'>
<input type='submit' value='Submit'>
</form>
"""
return html
@app.route('/second', methods=['POST'])
def second():
username, password = flask.request.form['username'], flask.request.form['password']
flask.session['username'] = username
flask.session['password'] = password
flask.session['completed'] = True
return flask.redirect('/upload')
@app.route('/upload', methods=['GET'])
@validate_upload
def do_something():
return '<p>Doing something with values</p>'

TA贡献1801条经验 获得超8个赞
正如您提到的NTLM身份验证一样,我假设您正在Windows网络中运行。如果是这样,我不确定为什么您需要一个用户可以输入用户名和密码的表格。
NTLM和Kerberos使用Windows会话的主体通过在同一域内运行的服务对用户进行身份验证。用户一次登录Windows,并且在调用服务时会自动使用该身份对用户进行身份验证。
Flask使用Flask-Kerberos模块支持此功能
添加回答
举报