Когда я искал ответы на вопросы о создании приложения Box.net для настольных компьютеров, попытка получить аутентификацию при входе в систему заняла больше, чем следовало бы...
Поэтому я решил разместить на своем веб-сайте статью, в которой рассказывается о процессе создания настольного приложения C# .Net 4.0, которое может входить в систему и работать с их SDK. Это использует их новую систему входа OAuth 2.0.
Сначала мы отправляем первоначальный веб-запрос, используя стандартный объект HttpWebRequest, чтобы получить веб-страницу пользовательского интерфейса для входа в систему OAuth 2.0. Как только веб-ответ будет возвращен, мы преобразуем его в поток для использования нашим веб-браузером. URI перенаправления может быть любым URI на основе HTTPS.
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;
Как только это будет сделано, все операции пользователя обрабатываются элементом управления веб-браузером. Для захвата токена аутентификации, когда пользователь нажимает кнопку «Предоставить доступ». Мы добавляем прослушиватель событий для события 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();
}
}
Ссылка на мою исходную статью и исходный код: ссылка
person
John117
schedule
07.09.2013