Как передать данные из приложения Silverlight OOB на сайт asp.net? - PullRequest
2 голосов
/ 12 июля 2011

Я создал приложение silver-light 4.0, в котором пользователь может ввести свое имя пользователя и пароль.
После отправки этих секретных данных (имя пользователя, пароль) из приложения SL,
отправлено на веб-сайт со строкой запроса ..
Я хочу передать как ниже строку URL
например: http://testsite.com/mypage.aspx?

Я хочу передать имя пользователя и пароль в зашифрованном виде с SL на страницу Aspx ..
Как я передаю эту информацию из приложения SL на веб-сайт asp.net ..

Ответы [ 3 ]

1 голос
/ 12 июля 2011

Таким образом, вы можете просто использовать класс WebClient и получить страницу.

(я предполагаю, что вы делаете asp.net WebForms НЕ MVC)

Ваша страница asp.net должна быть пустой страницей, в вашем коде позади вы читаете строку запроса и делаете то, что выВ зависимости от успеха или неудачи, вы пишете соответствующий ответ с помощью Response.Write();.

. В вашем коде silverlight вам просто нужно запросить страницу, и затем вы можете прочитать ответ из вашего asp.net page.

Asp.net:

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

Silverlight:

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

In 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 я проверяю, что свойство 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.

В этой статье описывается, как выполнить POST с silverlight на страницу.

НТН

1 голос
/ 12 июля 2011

Из этого вопроса я понял, что вы дважды аутентифицируете пользователя - сначала в приложении SL, а затем в приложении ASP.Net.Вместо этого вы можете просто аутентифицировать пользователя в SL и передать результат (может быть True / False или токен) в приложение ASP.Net?Это безопасный способ, которым я себя чувствую.

0 голосов
/ 12 июля 2011

Вы можете использовать как HtmlPage.Window.Eval ("window.location.href = '" + YOURURL "" ");

...