Как прочитать имя пользователя и пароль из http GET в контроллере .NET MVC? - PullRequest
0 голосов
/ 14 сентября 2010

Как я могу прочитать имя пользователя и пароль из http GET в контроллере .NET MVC? Я использую вызов jQuery $. Ajax и передаю имя пользователя и пароль в качестве параметра.

  1. Это безопасно?
  2. Если мой сервер ASP.NET MVC 2, как я могу получить имя пользователя и пароль из запроса?

Моя конечная цель - сделать защищенный вызов jsonp.

вот как я звоню в javascript

    $("#getSomethingButton").click(function () {
        var username = "myusername";
        var password = "mypassword";
        $.ajax({
            url: 'people/getSomething',
            username: username,
            password: password,
            dataType: 'jsonp',
            jsonpCallback: 'onGetSomething'
        });
    });

вот как MVC получает запрос

public string GetSomething(string callback)
{
    string data = "{data: 'test'}";
    return string.Format("{0}({1});", callback, data);
}

если я смотрю запрос в фиддлере, это выглядит так

http://myusername:mypassword@localhost:29161/people/getSomething?callback=onGetSomething

Если и когда он будет запущен в производство, это будет только SSL / HTTPS, но, конечно, строка запроса этим не защищена.

Итак, вопрос в том, могу ли я каким-либо образом защитить пароль с помощью запроса GET jsonp?

Ответы [ 2 ]

4 голосов
/ 14 сентября 2010

Чтобы отправить имя пользователя / пароль с помощью AJAX:

// Obviously the username/password should not be hardcoded but read from an input
$.get('/home/foo', { username: 'foo', password: 'secret' }, function(result) {
    alert('username/password sent');    
});

Чтобы прочитать их:

public ActionResult Foo(string username, string password)
{
    ..
}

Это безопасно?

Только если вы используете HTTPS.

Я бы порекомендовал вам отправлять конфиденциальную информацию, подобную этой, только с глаголом POST ($.post).

1 голос
/ 14 сентября 2010

Опять же, будьте очень осторожны при передаче конфиденциальных данных, используя GET

...