簡體   English   中英

ASP.NET Web API,簡單/自定義成員身份,AngularJS和Petapoco

[英]ASP.NET Web API, Simple/Custom Membership, AngularJS, and Petapoco

我正在開發一個簡單的AngularJS Web應用程序。

我只想使用登錄名和密碼來實施一次身份驗證。

我可以找到的所有Web API安全示例都是為每個請求發送用戶名和密碼,並使用Entity Framework。

我想要一個登錄頁面,對用戶進行一次身份驗證,然后讓他們使用該應用程序。

我想使用PetaPoco,因為我發現實體框架太復雜了(我必須學習Linq)。 但是simpleMembership提供程序示例使用Entity Framework。 甚至MVC4 Internet應用程序也使用實體框架。

有什么想法/樣本嗎?

我現在頭頂只有兩個選擇:

  1. 如果服務托管在同一個域中,則可以使用auth cookie,並且可以制作自定義auth提供程序或自定義授權過濾器,以處理那里的所有授權邏輯,並使用所需的ORM並修飾您的方法。想要保護1。[Authorize(Roles =“ manager”)]

  2. 還有另一種方法可以實現,可以實現HMAC,可以在登錄方法中生成它,然后可以將HMAC簽名附加到請求並驗證該請求,如果服務器計算的簽名與密碼匹配,則需要保存該計算的簽名。在郵件上表示郵件已被授權。

我知道這更多是個人喜好問題,但是我不喜歡發送登錄名和密碼的想法,這樣您就需要從REST服務中獲取一些東西。

您可以看一下這篇看起來非常不錯的文章

您可能需要考慮在您的應用中使用一種方法來防止跨站點請求偽造攻擊

希望對您有所幫助

我們一直在使用與您在問題中提到的堆棧相同的堆棧。 ASP.Net MVC,Web API,PetaPoco。 我們使用ASP.Net通用提供程序及其默認配置。

在ASP.Net MVC應用程序中對用戶進行身份驗證后,對webapi的請求無需傳遞任何特定的憑據。 由於基礎框架是ASP.Net,因此FormAuthenticationModule可以無縫處理Authentication部分。

關於您的EF問題。 我不認為這是一個問題,因為您沒有與EF進行交互。 圖書館是,而您只是該圖書館的使用者。 它可能會增加對EF的依賴關系,但這不會影響您的實現,您可以自由使用所需的任何數據訪問庫。 EF的用法很抽象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM