2017-01-19 278 views
0

我想在我的應用程序中實現身份驗證和授權。我正在使用AngularJs和ASP.NET Web API開發我的應用程序。Angularjs和WebAPI - 身份驗證和授權

我想要實現:

  1. 其內部網應用程序,並希望使用Windows身份驗證。
  2. 授權,我們要保持在數據庫中的表名和角色欄,並使用這個表,我們將授權用戶。

請建議我怎麼可能使用AngularJs和Web API我的應用程序中實現這一點。

+0

你到目前爲止嘗試過什麼?通常,Javascript前端使用Web API(即REST)將使用某種令牌認證(請參閱https://jwt.io/和https://oauth.net/2/) – Ben

+1

如果它是一個Intranet應用程序Windows身份驗證您並不真正需要令牌,因爲對服務器的每個請求都將在'HttpContext.Current.User.Identity.Name'屬性中包含用戶標識。結合你的角色表,應該是你開始所需的一切。 – Lex

回答

0

設置您的WebAPI庫使用Windows身份驗證。將您的[Authorization]屬性添加到您的控制器。您的啓動邏輯當然可以從您的數據庫中提取角色名稱,並添加這些角色以用於控制器/方法中的[Authorization]屬性。

我不知道我會做到這一點每個用戶名的基礎上,但 - 我會創造一些角色(例如管理員,用戶),並控制那些通過AD如果我使用的是Windows身份驗證。然後,我只需將AD組名稱存儲爲我的角色名稱即可。

Angualr.JS並沒有真正因素納入畫面多都在這裏 - 在auth會被瀏覽器處理。您可能想要或需要的一件事是通過某種方式從API層中的User對象獲取用戶名 - 換句話說,創建一個API方法來返回有關已登錄用戶的信息(包括該用戶的名稱,如果您使用其他形式的身份驗證,則可能由Angular.JS應用程序進行管理)。