2017-11-01 4 views
0

私はまだWeb依頼ユーティリティの学習段階にあり、これを明確にしたいと考えています。 JSONレスポンスを返すASP.NET Web APIを作成しました。これを保護するために、ADFS統合が実装されています。WebClientを使用したADFSログインは、JSON応答のHTML形式のintheadを返す

WebClientを使用しているときに、私はADSLログインページをレスポンスとして取得していました.WebClient UploadValuesを使用して、Cookieクラスで自分の資格情報を渡しました。

public CookieContainer CookieContainer { get; private set; } 

protected override WebRequest GetWebRequest(Uri address) 
{ 
    var request = (HttpWebRequest)base.GetWebRequest(address); 
    request.CookieContainer = CookieContainer; 
    return request; 
} 

Main.cs

using (var client = new CookieAwareWebClient()) 
     { 
     var values = new NameValueCollection 
    { 
     { "username", "" }, 
     { "password", "" }, 
    }; 
     byte[] response=client.UploadValues(ADFS sigin url); 

ここでの問題は、私が取得しています応答が作業を言うすべての認証の詳細およびその他のパラメータ

とHTMLフォームであるということです。私がHTML応答をノートパッド にコピーしてブラウザ内で実行したとき、API URLにリダイレクトされ、 JSONが返されます応答。コンソール アプリケーションからJSONを取得するために達成する方法。***

この混乱に助けてください。

答えて

0

どのバージョンのADFSを使用していますか?

ADFS 4.0(Server 2016)は、完全なOpenID Connect/OAuthスタックを備えているので、より良い選択です。

また、ADFSはプロトコルに従わなければならず、認証コード付与に従っている必要があります。これは、ログイン画面を要求します。

また、クライアントの資格情報flowを使用することもできます。

+0

私はADFSのバージョンを知りません。コードから私は認証することができますが、ここで混乱する部分は、これを含むhtml応答です。 window.setTimeout( 'document.forms [0] .submit()'、0);私はhtml応答を開いて、その認証を開いて私に応答しています。 –

関連する問題