2

プログラムで Microsoft SSRS に接続しようとしています。これは、何らかの方法で www-authentication http ヘッダーを使用して行う必要があると思いますが、正確にはわかりません。

匿名の Web ユーザーとして SSRS にログインする際に問題があるため、これを行っています。クライアントは、ユーザー名とパスワードの入力を求められるべきではありません。

ログインすると、PHP はクライアントとして SSRS 間のリレーとして機能するはずです (ユーザーは PHP ページから SSRS を参照します)。

これを機能させる他の方法がある場合は、叫んでください!

これは私が得た距離です:

<?php
    function get_url_contents($url){
        $crl = curl_init();
        $timeout = 5;
        curl_setopt ($crl, CURLOPT_VERBOSE, 1);
        curl_setopt ($crl, CURLOPT_URL,$url);
        curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt ($crl, CURLOPT_HTTPHEADER,array("WWW-Authenticate: Basic"));
        curl_setopt ($crl, CURLOPT_HEADER, 1);
        curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
        $ret = curl_exec($crl);
        curl_close($crl);
        return $ret;
    }


    $url = "http://192.168.0.16/ReportServer";
    $str = get_url_contents($url);
    echo $str;
?>

出力は次のとおりです。

C:\wamp\bin\php\php5.3.8>php.exe c:\wamp\www\Test\index.php
* About to connect() to 192.168.0.16 port 80 (#0)
*   Trying 192.168.0.16... * connected
* Connected to 192.168.0.16 (192.168.0.16) port 80 (#0)
> GET /ReportServer HTTP/1.1
Host: 192.168.0.16
Accept: */*
WWW-Authenticate: Basic

< HTTP/1.1 401 Unauthorized
< Content-Length: 0
< WWW-Authenticate: NTLM
< WWW-Authenticate: Basic realm="192.168.0.16"
< Date: Wed, 27 Jun 2012 06:31:24 GMT
<
* Connection #0 to host 192.168.0.16 left intact
HTTP/1.1 401 Unauthorized
Content-Length: 0
WWW-Authenticate: NTLM
WWW-Authenticate: Basic realm="192.168.0.16"
Date: Wed, 27 Jun 2012 06:31:24 GMT

* Closing connection #0

C:\wamp\bin\php\php5.3.8>
4

1 に答える 1

0

したがって、私の記憶が正しければ、箱から出してインストールすると、SSRS は NTLM に「デフォルト」設定されます。つまり、Windows AD アカウントを探しています。もちろん、ユースケースに応じて、構成を介してこれらの設定を無数の他の設定に変更できます。認証の詳細については、次のページを参照してください: http://msdn.microsoft.com/en-us/library/bb283249.aspx

私はずっと前にこれに似たプロジェクトに取り組みました。私たちが最終的に使用した最も簡単な解決策は、サービス アカウントを作成し、PHP アプリケーションで使用されるさまざまな SSRS レポートへの権利をサービス アカウントに付与し、.NET 側で本質的に SSRS Web サービスを呼び出すラッパー Web サービスを作成することでした。サービス アカウント。次に、このラッパー Web サービスを PHP 側から呼び出しました。SSRS Web サービスの詳細については、http: //msdn.microsoft.com/en-us/library/ms155398.aspxを参照してください。

お役に立てれば...

于 2012-07-08T04:19:02.447 に答える