當我在摸索中有關創建桌面試圖獲得登錄身份驗證的應用程序Box.net答案花了超過它真的應該有...
所以我決定在拼湊一篇文章我的網站通過創建一個可以登錄並使用SDK的C#.Net 4.0桌面應用程序進行對話。這是使用他們的新OAuth 2.0登錄系統。
首先,我們使用標準HttpWebRequest對象發送初始Web請求,以獲取OAuth 2.0登錄的UI網頁。一旦Web響應被返回,我們將其轉換爲Stream,供我們的Web瀏覽器使用。重定向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);
注入流進我們使用的文檔屬性
webBrowser1.DocumentStream = view;
一旦完成所有用戶的操作由網絡瀏覽器控制處理的Web瀏覽器的控制。在用戶按下「授予訪問權限」按鈕時捕獲身份驗證令牌。我們爲Web瀏覽器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();
}
}
鏈接我的原創文章和源代碼:link
很抱歉,但我不會在所有的文檔理解。在auth V1中,我沒有使用任何重定向網址。我剛拿到一張票,並打電話給http://www.box.net/api/1.0/auth。 – user1466502
對不起,但我不明白所有的文件。在auth V1中,我沒有使用任何重定向網址。我剛拿到一張票,並打電話給http://www.box.net/api/1.0/auth。 我試圖把https://www.box.net/api/1.0/auth作爲OAuth需要一個https URL,但如果我打電話https://api.box.com/oauth2/authorize?response_type=code&client_id= {我的客戶端ID},我得到錯誤:invalid_client。從我所看到的client_id與V1 api_key的值相同,因此它與auth V1一起工作,我被OAuth卡住了。 如果有人有一個具體的例子登錄到一個簡單的箱子帳戶,高度讚賞! – user1466502
@ user1466502,您的應用程序桌面或網站?嘗試設置爲redirect_uri任何https URL(甚至不存在)。在輸入login/pwd數據並允許你從box.com得到響應後,你將會在默認情況下包含重定向到box.com,但在響應正文中還有一些標記(如果我不會誤認爲iframe)與你的URL和代碼值 –