2010-09-14 70 views
0

如何从.NET MVC控制器的http GET中读取用户名和密码?我正在使用jQuery $.ajax调用,并且我正在传递用户名和密码作为设置。如何从.NET MVC控制器的http GET中读取用户名和密码?

  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:[email protected]:29161/people/getSomething?callback=onGetSomething

如果并且当它投入生产时,它将仅为SSL/HTTPS,但当然查询字符串并不受此保护。

所以问题是我可以以任何可能的方式使用jsonp GET请求来保护密码?

+1

。那是你在做什么? – Kobi 2010-09-14 10:13:01

+0

准确地说,我想用javascript调用其他域的API调用,但必须保证密码或者项目将被封装。 – 2010-09-14 12:59:18

回答

1

再次,在使用GET传递敏感数据时要非常小心,根据我的理解,对于跨域请求来说更好一些,jsonp更适合使用GET

+0

这就是问题所在。我如何确保密码? – 2010-09-14 13:28:16

4

发送使用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)这样的敏感信息。

+0

谢谢!我同意一个帖子会更好,但我的最终目标是jsonp,其中帖子不是一个选项。 – 2010-09-14 12:33:27

+0

在这种情况下,请确保您使用的是SSL。 – 2010-09-14 12:35:02

+0

我测试了这个,它不起作用。用户名和密码在查询时传递即使发布也无法保证。 – 2010-09-14 12:56:34

相关问题