我有要求從我的Django站點打開SQLServer報告。我可以通過存儲在會話中的URL重定向後在Django視圖報表服務器URL做到這一點,即:Django打開基本身份驗證的SQLServer報告
def show_report(request):
return redirect(request.session.get('_reporturl'))
這工作得很好,但我想避免的ReportServer提示輸入用戶名和密碼。我得出結論(可能不正確),最好的方法是使用HTTP基本認證。
我發現在另一篇文章的基本身份驗證下面的代碼:
import urllib2, base64
username = '<username>'
password = '<password>'
request = urllib2.Request(request.session.get('_reporturl'))
base64string = base64.standard_b64encode('%s:%s' % (username, password))
request.add_header("Authorization", "Basic %s" % base64string)
result = urllib2.urlopen(request)
但是我不能得到這個在視圖中工作(Django視圖需要返回一個HttpResponse,所以我不能確定如何使用此代碼)。
我已經試過如下:
return redirect('http://<username>:<password>@' + request.session.get('_reporturl'))
這似乎與基本身份驗證數據傳遞到報表服務器,但我得到的用戶名和密碼數進一步提示。
有沒有人設法在Django中使用基本身份驗證,還是有人設法打開SQLServer報告而不提示進行身份驗證?