C# I';如果已打开SSO弹出窗口,如何单击弹出窗口中的链接?

C# I';如果已打开SSO弹出窗口,如何单击弹出窗口中的链接?,c#,javascript,asp.net,hyperlink,popup,C#,Javascript,Asp.net,Hyperlink,Popup,我正在通过ASP/C页面访问SSO,并使用以下代码打开弹出窗口: string s = "window.open('" + getSSOlink(ah1.InstitutionUserID, cardnumber) + "','popup_window', 'width=980,height=600,resizable=yes');"; Page.ClientScript.RegisterStartupScript(this.GetType(), "sc

我正在通过ASP/C页面访问SSO,并使用以下代码打开弹出窗口:

 string s = "window.open('" + getSSOlink(ah1.InstitutionUserID, cardnumber) + "','popup_window', 'width=980,height=600,resizable=yes');";
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "script", s, true);
打开弹出窗口后,我需要单击弹出窗口中的2个链接,然后导航到页面的特定部分。第一个页面上的id是id25,第二个页面上的id是cuRewardsLink,每次打开SSO时都是相同的。点击第二个链接后,用户将被引导至奖励系统

我试图找到一种方法来打开一个新的浏览器窗口,自动导航到奖励页面。理想情况下,他们不会看到在弹出窗口中加载前两个页面,而只看到最终目的地。弹出窗口中的链接没有静态URL,有一个AJAX函数可以从创建链接的单击返回信息

弹出窗口打开后,我不确定如何访问当前浏览器窗口(弹出窗口)中的HTML元素。我尝试使用WebBrowser类导航到页面,等待加载,然后单击链接,但得到“ThreadState异常-无法实例化ActiveX控件,因为当前线程不在单线程单元中”:


如果您有任何帮助或想法,我们将不胜感激。

您的SSO服务是否有返回url选项?只是要求显而易见的人确保他们还没有满足这样的要求,允许你在成功登录后指定一个导航页面。不幸的是,它没有那么强大。我得到一个返回到主页的url,这就是为什么我尝试使用InvokeMember来单击链接。
WebBrowser browser = new WebBrowser();                    
browser.Navigate(getSSOlink(ah1.InstitutionUserID, cardnumber));
Thread.Sleep(1000);
browser.Document.GetElementById("id25").InvokeMember("Click");
Thread.Sleep(1000);
browser.Document.GetElementById("cuRewardsLink").InvokeMember("Click");
browser.Visible = true;