2

我创建了 silver-light 4.0 应用程序,该用户可以输入他们的用户名和密码。
从 SL 应用程序提交此秘密数据(用户名、密码)后,
它使用查询字符串提交到网站。
我想传递如下 URL 字符串
,例如:-   http://testsite.com/mypage.aspx?<加密字符串>

我想以加密格式将用户名和密码从 SL 传递到 Aspx 页面。
我如何将这些信息从 SL 应用程序传递到 asp.net 网站。

4

3 回答 3

1

所以你可以只使用WebClient类并获取页面。

(我假设你在做 asp.net WebForms NOT MVC)

您的 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);

Button1_Click中,我调用DownloadStringAsync,传递包含用户指定数字的完整 URL。

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

在 DownloadStringCompleted 事件处理程序中,我检查事件 args 的 Error 属性是否为空,然后将响应或错误消息输出到文本块。

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 页面。

本文介绍如何从 silverlight POST 到页面。

高温高压

于 2011-07-12T05:54:31.850 回答
1

我从这个问题中了解到,您要对用户进行两次身份验证——首先是在 SL 应用程序中,然后是在 ASP.Net 应用程序中。相反,您可以只在 SL 中验证用户并将结果(可能是真/假或令牌)传递给 ASP.Net 应用程序吗?这是我觉得安全的方式。

于 2011-07-12T06:01:59.000 回答
0

您可以使用 HtmlPage.Window.Eval("window.location.href='"+ YOURURL +"'");

于 2011-07-12T05:34:40.523 回答