2

MVVMSilverlightアプリケーションがあります。クライアント側のビューモデルで発生するボタンクリックイベントからWebURLを開こうとしていますが、invokeメソッドを使用して新しいブラウザでWebURLを開く必要があります。

以下のサーバー側コードで説明されているように、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");

これにより、ユーザー名とパスワードに関連するエラーがスローされます。ユーザー名とパスワードが正しいことを確認しました。誰かが私が使用できる解決策または他の方法を持っていますか?

ありがとう、

4

2 に答える 2

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");
于 2013-03-14T07:48:45.197 に答える
0

これも使用できます:

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

資格情報を渡す最も簡単な方法は、資格情報を URL に入れることですが、あまり安全ではありません。すなわち:

http://user:password@foo.fr

于 2014-12-10T09:45:20.727 に答える