2013-03-18 106 views
4

我正在開發一個組織者,其中包含通過網站進行保存和管理的用戶任務。對於我使用ASP.NET MVC 4和backbone.js的網站。現在我想用PhoneGap創建一個移動應用程序。用戶將能夠登錄/註冊,然後他將能夠隨身攜帶手機/平板電腦管理他的任務。所以我的問題是,我不知道如何登錄,然後如何從服務器獲取任務。用phonegap和asp.net mvc登錄4

現在我正在使用backbone.js,並且在管理任務的服務器上有一個api。我的想法只是使用ASP.NET MVC中的相同代碼(只有html,css,js),並且它應該很容易工作,但是對於那個api用戶必須被記錄,並且這是使用簡單的成員資格和web安全性在後端部分中使用,我不會用於移動版本,我不知道用戶登錄的具體情況。

另一個想法是檢查用戶憑證(通過AJAX請求到服務器可以說用戶是否輸入了有效的登錄數據),以便在電話上存儲我的用戶標識(本地存儲或類似內容),然後在服務器上使用api,這將不需要用戶登錄,它將管理用戶的任務(爲此我傳遞用戶ID)。但我認爲這將是一個巨大的安全漏洞,因爲每個人只有輸入用戶ID才能更改任務。我已經找到了Raymond Camden的一個登錄示例(See it here),這可能有助於這個想法,但它僅適用於登錄部分(並且它僅在設備上登錄,但仍然存在我解釋的安全漏洞問題,關注我)

So我將不勝感激,如果你請給我一些想法如何實現在設備上登錄和如何從服務器獲取用戶數據。即使只有概念性的想法,我也會很感激。

回答

2

您可以通過在您的控制器文件夾內創建一個Web API控制器來公開您的服務器端代碼來創建Web API接口。對於身份驗證,您可以通過在授權頭中提供用戶憑據來使用HTTP基本身份驗證。現在在您的Web API消息處理程序中,您需要閱讀用戶的憑據並授權用戶。 Here is a good article on this topic.。使用基本身份驗證的一個缺點是,對於每個請求,您都需要訪問AD的數據庫來授權用戶。爲了防止這種情況發生,您可以在用戶首次通過身份驗證後創建安全令牌,然後將其傳遞給客戶端,以便所有將來的請求都使用此安全令牌。如果性能對你來說不是什麼大問題,那麼基本認證就可以做到。

0

我處於同樣的情況。爲了解決這個問題,我使用了Thinktecture框架會話令牌。它允許使用例如基本身份驗證進行一次身份驗證,然後您可以請求可以在請求之間傳遞的令牌,並且可以將其存儲在本地存儲中。通過這種方式,您不必將用戶和密碼存儲在不安全的位置,也不必每次請求都進行身份驗證。