2011-07-12 30 views
2

我创建了银光4.0应用程序,该用户可以输入他们的用户名和密码。
后从SL应用程序提交这个秘密数据(用户名,密码),
提交给网站,查询字符串..
我想通过如下URL字符串
为前: -   的http:// testsite.com/mypage.aspx? <加密的字符串>

如何将数据从Silverlight OOB应用程序传递到asp.net网站?

我想从SL到ASPX页面加密格式通过用户名和密码..
我如何通过从SL应用到asp.net网站的信息..

+0

凭据正在提交给您自己的网页吗?如果是这样,网页会给你什么?为什么不使用WCF服务呢?或者你是否提交给第三方网站(在这种情况下,他们应该已经有了关于你应该怎么做的规范)? – slugster

回答

1

所以你可以使用WebClient类和GET页面。

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

你的asp.net页面应该是一个空白页,在后面的代码,你看你的查询字符串,做你需要做什么用,根据成功或失败情况,您使用Response.Write();编写相应的答案。

在你的silverlight代码中,你只需要请求你的页面,然后你可以从你的asp.net页面读取响应。

Asp.net:

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

的Silverlight:

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事件处理程序,我检查事件参数的错误属性是空的,或者输出所述响应或错误消息的文本块。

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; 
} 

上面的代码被剽窃从this blog

请记住,嗅探器可以读取您的请求。如果您需要更好的安全性,您可能需要使用SSL。可能更安全的方式发送这些数据将发送到您的asp.net页面。

This article介绍了如何从silverlight发布到页面。

HTH

+0

你好@giddy是否有可能在从客户端PC运行到网页的SL OOB应用程序中。我将参数作为查询字符串从浏览器应用程序传递到default.aspx页面。 –

+0

感谢您的回复。 –

+1

如果我没有弄错,你可以从OOB SL应用程序请求,如果这个应用程序是从同一个域安装的。 (例如:应用程序是从testapp.com安装的)如果它是从其他域安装的,则必须在testapp.com的根目录中包含一个* clientaccesspolicy.xml *文件,以便您的SL应用程序可以访问它。 [见本页](http://msdn.microsoft.com/en-us/library/cc645032(v = vs.95).aspx)如果你是google的话,有很多_clientaccesspolicy.xml_的默认示例。 – gideon

0

你可以使用像HtmlPage.Window.Eval(“window.location.href ='”+ YOURURL +“'”);

+0

@Priyan_R我想从SL应用程序传递用户名和密码到加密的查询字符串到URL的新网页 –

+0

传递使用加密签名从silverlight加密的Url Querystring http://scrypt.codeplex.com/ –

1

我从了解的问题是什么,你是验证用户两次 - 第一次在SL中的应用程序,然后在ASP.Net应用程序。相反,你可以在SL中验证用户身份,并将结果(True/False或令牌可能)传递给ASP.Net应用程序?这是我感觉安全的方式。

+0

那么如何与SQL服务器通信并检查是否授权。 –

+0

我不验证用户两次。只是我检查用户从页面只认证..我不知道如何从SL与SQL服务器认证用户。 –

+0

观看此视频 - [link](http://www.silverlight.net/learn/videos/all/use-aspnet-authentication-silverlight-3/)。它适用于SL3,但应该适用于SL4。你所寻找的是复杂的,所以你需要很好地理解认证过程。 – Nilesh

相关问题