Django サイトから SQLServer レポートを開く必要があります。セッションに URL を保存した後、Django ビューでレポート サーバーの URL にリダイレクトすることでこれを行うことができます。
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レポートを開くことができた人はいますか?