2017-09-07 11 views
0

に私はXamarin内のAzure Active Directoryのユーザーを認証しようとしていると、次のコードサンプルは、(私は実際に削除したアプリのOAuth2のWeb要求は、ブラウザで動作しますが、アプリ

URLを形成していませんエラーメッセージはあなたがURLにパラメータを入れ

  string URL = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?" 
         + "client_id=xxxx-xxxxx-xxxxx-xxxxx-xxx" 
         + "&response_type=code" 
         + "&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient" 
         + "&response_mode=query" 
         + "&scope=openid%20offline_access%20https%3A%2F%2Fgraph.microsoft.com%2Fmail.read" 
         + "&state=12345"; 



      var webRequest = System.Net.WebRequest.Create(URL) as HttpWebRequest; 

      System.Console.WriteLine(URL); 

      if (webRequest != null) 
      { 
       webRequest.Method = "POST"; 
       webRequest.ServicePoint.Expect100Continue = false; 
       webRequest.Timeout = 20000; 

       webRequest.ContentType = "text/html"; 
       //POST the data. 
       using (requestWriter = new StreamWriter(webRequest.GetRequestStream())) 
       { 
        requestWriter.Write(postData); 
       } 
      } 

      HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse(); 
      Stream resStream = resp.GetResponseStream(); 
      StreamReader reader = new StreamReader(resStream); 

      ret = reader.ReadToEnd(); 

答えて

0

の応答タイプはCLIENT_IDを含まなければならない」と言ったHTTPリクエスト

を送信しようとしたとき、あなたが必要とするように、クライアントのID)は、ブラウザで正常に動作しますが、失敗しましたPOSTの代わりにGETメソッドを使用する(ブラウザがyアドレスバーにURLを貼り付けてください)。

webRequest.Method = "POST"; 

によって:

webRequest.Method = "GET"; 

をし、削除します。

ので、交換してください、私はエラーメッセージを取得することを行う場合はメソッドがGETのとき

//POST the data. 
using (requestWriter = new StreamWriter(webRequest.GetRequestStream())) 
    { 
    requestWriter.Write(postData); 
    } 
+0

「は、データを送信できません" – Journeyman1234

+0

は' // POST the data'の後に3行を削除します。それはGETメソッドなので役に立たない。これはエラーメッセージを説明します。 –

関連する問題