5

OAuth で新しい Box 認証 API を使用しようとしています。アプリケーションの認証に現在使用しているボックス アカウントの資格情報を使用したいと考えています。

OAuth の構成でリダイレクト URI が要求されますが、そこに何を入力する必要があるかわかりません。以前の認証方法では、次の URI にhttp://www.box.net/api/1.0/auth/ {ticket} を指定していましたが、これは認証チケットを取得した後で行われました。

私は OAuth を初めて使用するので、私の質問は少し明白かもしれません... しかし、ボックス アカウント ユーザーの資格情報を使用して認証を行う方法を知りたいです。

私はこれを Windows アプリケーションで行っているので、リクエストからの応答を表示する方法も理解したいと思います。

4

2 に答える 2

2

デスクトップ用のBox.netアプリケーションの作成に関する回答を探していたとき、ログイン認証を取得しようとすると、実際に必要な以上の時間がかかりました...

そのため、ログインして SDK で動作する C# .Net 4.0 デスクトップ アプリケーションを作成するプロセスを説明する記事を Web サイトにまとめることにしました。これは、新しい OAuth 2.0 ログイン システムを使用しています。

まず、標準の HttpWebRequest オブジェクトを使用して最初の Web 要求を送信し、OAuth 2.0 ログイン用の UI Web ページを取得します。Web 応答が返されたら、それを Web ブラウザーが使用できるように Stream に変換します。リダイレクト URI は、任意の HTTPS ベースの URI にすることができます。

string baseURI = "https://www.box.com/api/oauth2/authorize?";
string responseType = "&response_type=code";
string clientId = "&client_id=YOUR OWN CLIENT ID";
string redirectURI = "&redirect_uri=https://app.box.com/services/poc_connector"; 

var targetUri = new Uri(baseURI + responseType + clientId + redirectURI);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(targetUri);

Stream を Web ブラウザー コントロールに挿入するには、document プロパティを使用します。

webBrowser1.DocumentStream = view;

それが完了すると、ユーザーによるすべての操作は Web ブラウザー コントロールによって処理されます。ユーザーが「アクセスを許可」ボタンを押したときに認証トークンをキャプチャします。web-browsers Navigated イベントのイベント リスナーを追加します。

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
    if (e.Url.AbsolutePath != "blank" && e.Url.ToString().Contains("&code="))
    {
        Token = e.Url.ToString().Substring(e.Url.ToString().IndexOf("&code="));
        Token = Token.Replace("&code=", String.Empty);
        this.Close();
    }
}

元の記事とソース コードをリンクする:リンク

于 2013-09-07T10:06:32.390 に答える
1

OAuth 2 プロセスの最初のステップはhttps://api.box.com/oauth2/authorize、リクエストのパラメーターとして response_type と client_id を使用してユーザーを に送信することです。リダイレクト URL は、V1 で設定したものと同じになります。たとえば、client_id が 123456 の場合、ユーザーを

https://api.box.com/oauth2/authorize?response_type=code&client_id=123456

詳しくはこちらをご覧ください

于 2012-12-15T21:22:08.313 に答える