मैं एक डेस्कटॉप एप्लिकेशन लिख रहा हूं और एक भाग में मैं ओएथ 2.0 प्रवाह से गुजरता हूं।बाहरी वेब ब्राउज़र में टैब कैसे बंद करें?
कदम हैं:
- प्रारंभ प्रक्रिया - प्रवेश पृष्ठ के साथ खुला वेब ब्राउज़र।
- उपयोगकर्ता लॉग इन और मेरे ऐप को अधिकृत करें।
- पृष्ठभूमि में मैं एक विशिष्ट नाम के साथ प्रक्रिया की खोज करता हूं, ऐप में इसे (नाम) सहेजें।
- अंत में मैं वेब ब्राउज़र बंद करता हूं।
समस्या यह है कि यदि उपयोगकर्ता ने पहले वेब ब्राउज़र में कुछ टैब खोले थे - बिंदु 1 में। नया टैब जोड़ा गया है और बिंदु 4 में सब कुछ बंद है (सभी टैब के साथ वेब ब्राउज़र)।
क्या आप मुझे बता सकते हैं कि वेब ब्राउजर में एक टैब बंद करने का कोई तरीका है या नहीं? या शायद ओथ के माध्यम से जाने के लिए अन्य/आसान तरीका है?
मैन्युअल समाधान के रूप में मैं बस उपयोगकर्ता को जानकारी दिखाऊंगा "अब आप इस टैब को बंद कर सकते हैं", हालांकि मैं इसे स्वचालित रूप से करना चाहता हूं।
यह सी # नेट 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));
आपके सुझावों के लिए धन्यवाद।
+1 कभी देखा है –
विषय पर अधिक: आप इस ब्राउज़र सामान की बजाय मौजूदा सी # ओथ पुस्तकालयों में से एक का उपयोग करने पर विचार कर सकते हैं - उदाहरण के लिए, http://stackoverflow.com/questions/3997172/oauth-2-0 के उत्तर में से एक से -सेवा-प्रदाता-नेट-लाइब्रेरी –
आप मूल 'वेबब्रोसर' नियंत्रण का उपयोग कर इसे अपने एप्लिकेशन में रख सकते हैं। –