我创建了 silver-light 4.0 应用程序,该用户可以输入他们的用户名和密码。
从 SL 应用程序提交此秘密数据(用户名、密码)后,
它使用查询字符串提交到网站。
我想传递如下 URL 字符串
,例如:-
http://testsite.com/mypage.aspx?<加密字符串>
我想以加密格式将用户名和密码从 SL 传递到 Aspx 页面。
我如何将这些信息从 SL 应用程序传递到 asp.net 网站。
我创建了 silver-light 4.0 应用程序,该用户可以输入他们的用户名和密码。
从 SL 应用程序提交此秘密数据(用户名、密码)后,
它使用查询字符串提交到网站。
我想传递如下 URL 字符串
,例如:-
http://testsite.com/mypage.aspx?<加密字符串>
我想以加密格式将用户名和密码从 SL 传递到 Aspx 页面。
我如何将这些信息从 SL 应用程序传递到 asp.net 网站。
所以你可以只使用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 到页面。
高温高压
我从这个问题中了解到,您要对用户进行两次身份验证——首先是在 SL 应用程序中,然后是在 ASP.Net 应用程序中。相反,您可以只在 SL 中验证用户并将结果(可能是真/假或令牌)传递给 ASP.Net 应用程序吗?这是我觉得安全的方式。
您可以使用 HtmlPage.Window.Eval("window.location.href='"+ YOURURL +"'");