2010-09-14 72 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

相關問題