如何从Silverlight应用程序中打开新浏览器中的URL

时间:2013-03-13 23:18:14

标签: silverlight-5.0

我们有MVVM Silverlight应用程序。我试图从客户端viewmodel上发生的按钮点击事件打开web url,并通过调用方法需要在新浏览器中打开web url。

我正在使用Process.Start方法,如下面服务器端代码中所述。

   var URL = @"http://SiteSelect.aspx";
   SecureString secure = new SecureString();
   char[] passwordChars = Properties.Settings.Default.Password.ToCharArray();
   //converting string to securestring...found from internet
    foreach (char c in passwordChars)
           {
             secure.AppendChar(c);
           }
    Process.Start(URL,"",Properties.Settings.Default.User,secure,"agent");

这会引发与用户名和密码相关的错误。我查了用户名和密码是否正确。任何人都有解决方案或我可以使用的任何其他方法吗?

谢谢,

2 个答案:

答案 0 :(得分:5)

您创建了一个帮助程序类:

public static class CommonHelper
{
    private class HyperlinkButtonWrapper : HyperlinkButton
    {
        public void OpenURL(string navigateUri)
        {
            OpenURL(new Uri(navigateUri, UriKind.Absolute));
        }

        public void OpenURL(Uri navigateUri)
        {
            base.NavigateUri = navigateUri;
            base.TargetName = "_blank";
            base.OnClick();
        }
    }

    public static void OpenURL(string navigateUri)
    {
        new HyperlinkButtonWrapper().OpenURL(navigateUri);
    }
 }

用法:

CommonHelper.OpenURL(@"http://SiteSelect.aspx");

答案 1 :(得分:0)

你也可以使用它:

using System.Windows.Browser;
var uri = new Uri("http://foo.fr");
HtmlPage.Window.Navigate(uri, "_blank");

传递凭据的最简单方法是将它们放在URL中,但它不是很安全。即:

http://user:password@foo.fr