我在Windows应用程序中使用Google Drive API。
每当用户单击按钮单击此处以使用另一个帐户登录时,导航到登录页面。
请参见以下图片
对于以上页面,我正在xaml中使用 WebBrowser 控件。
正在重定向,但页面已禁用,这意味着鼠标单击无法在按钮上进行。
oauth网址和逻辑
var url = string.Format("https://accounts.google.com/o/oauth2/auth?client_id={0}&redirect_uri={1}&include_granted_scopes=true&state=6a56c58b-4199-4952-a060-320d4573017c&scope={2}&response_type=code&access_type=offline&approval_prompt=force", GoogleDriveConfig.MyClientId, GoogleDriveConfig.MyRedirectUri, "https://www.googleapis.com/auth/drive");
SourceUrl = new Uri(url);
var cookie = string.Empty;
try
{
// Get every cookie (Expiration will not be in this response)
cookie = Application.GetCookie(SourceUrl);
}
catch (Win32Exception ex)
{
MigrationConfig.Logger.LogException(ex);
// "no more data is available" ... happens randomly so ignore it.
}
if (!string.IsNullOrEmpty(cookie))
{
// This may change eventually, but seems quite consistent for google.com.
// ... they split all values w/ ';' and put everything in foo=bar format.
string[] values = cookie.Split(';');
foreach (string s in values)
{
if (s.IndexOf('=') > 0)
{
// Sets value to null with expiration date of yesterday.
_DeleteSingleCookie(s.Substring(0, s.IndexOf('=')).Trim(), SourceUrl);
}
}
}
谢谢。