Я пишу настольное приложение и в одной части прохожу поток OAuth 2.0.
Шаги следующие:
Проблема в том, что если пользователь ранее открывал некоторые вкладки в веб-браузере - в пункте 1.добавлена новая вкладка и в пункте 4. все закрыто (веб-браузер со всеми вкладками).
Подскажите, есть ли способ закрыть одну вкладку в веб-браузере? Или, может быть, есть другой/более простой способ пройти через OAuth?
В качестве ручного решения я просто покажу пользователю информацию «Теперь вы можете закрыть эту вкладку», однако я хотел бы сделать это автоматически.
Это проект C# .Net 4.0 WPF.
string strAuthUrl = "http://accounts.example.com/login",
strAuthCode = string.Empty;
// Request authorization from the user (by opening a browser window):
ProcessStartInfo startInfo = new ProcessStartInfo(strAuthUrl);
startInfo.CreateNoWindow = false;
//1.
Process.Start(startInfo);
//2. - is happening in web browser
//3.
do
{
foreach (Process proc in Process.GetProcesses())
{
if (proc.MainWindowTitle.StartsWith("Success code="))
{
strAuthCode = proc.MainWindowTitle.ToString().Substring(13, 30);
//4.
try
{
// Close process by sending a close message to its main window.
proc.CloseMainWindow();
// Free resources associated with process.
proc.Close();
// Wait 500 milisecs for exit
proc.WaitForExit(500);
//if proc has not exited so far - kill it
if (proc.HasExited == false)
{
proc.Kill();
proc.WaitForExit();
}
}
catch (Exception ex)
{
//Do something with exception
}
break;
}
}
}
while (string.IsNullOrEmpty(strAuthCode));
Спасибо за ваши предложения.