2

ユーザーがユーザー名とパスワードを入力できるように、Silver-light 4.0 アプリケーションを作成しました。
SL アプリケーションからこの秘密データ (ユーザー名、パスワード) を送信した後
、クエリ文字列と共に Web サイトに送信されました。たとえば
、次の URL 文字列として渡したい
: -   http://testsite.com/mypage.aspx?<encrypted string >

ユーザー名とパスワードを暗号化された形式で SL から Aspx ページに渡したい..
これらの情報を SL アプリケーションから asp.net Web サイトに渡す方法..

4

3 に答える 3

1

質問から私が理解したのは、ユーザーを2回認証しているということです。最初はSLアプリで、次にASP.Netアプリで認証しています。代わりに、SLでユーザーを認証し、その結果(True / Falseまたはトークンの可能性があります)をASP.Netアプリに渡すことができますか?これは私が感じる安全な方法です。

于 2011-07-12T06:01:59.000 に答える
1

したがって、WebClientクラスを使用してページを GET することができます。

(MVCではなくasp.net WebFormsを実行していると想定しています)

asp.net ページは空白のページである必要があります。コード ビハインドでは、クエリ文字列を読み取り、必要な処理を行います。成功または失敗に応じて、適切な応答をResponse.Write();.

Silverlight コードでは、ページを要求するだけで、asp.net ページから応答を読み取ることができます。

Asp.net:

var encyString = Request.QueryString["str"];
//some logic
Response.Write("Success");

シルバーライト:

WebClient client = new WebClient(); 
client.DownloadStringCompleted +=
    new DownloadStringCompletedEventHandler(
    client_DownloadStringCompleted);

では、 DownloadStringAsyncButton1_Clickを呼び出して、ユーザーが指定した番号を含む完全な URL を渡します。

private void Button1_Click(object sender, RoutedEventArgs e)
{
    string encryptedString = "example";
    client.DownloadStringAsync
      (new Uri("http://testsite.com/mypage.aspx?"+encryptedString));
}

DownloadStringCompleted イベント ハンドラーで、イベント引数の Error プロパティが null であることを確認し、応答またはエラー メッセージをテキスト ブロックに出力します。

void client_DownloadStringCompleted(object sender,
  DownloadStringCompletedEventArgs e)
{
    if (e.Error == null)
        resultBlock.Text = "Using WebClient: "+  e.Result;
        //will be Response.Write();

    else
        resultBlock.Text = e.Error.Message;
}

上記のコードは、このブログから盗用されました。

スニファーはあなたのリクエストを読み取ることができることを覚えておいてください。セキュリティを強化する必要がある場合は、SSL を使用することをお勧めします。おそらく、このデータを送信するより安全な方法は、asp.net ページに POST することです。

この記事では、Silverlight からページに POST する方法について説明します。

HTH

于 2011-07-12T05:54:31.850 に答える
0

HtmlPage.Window.Eval( "window.location.href ='" + YOURURL + "'");のように使用できます。

于 2011-07-12T05:34:40.523 に答える