我有一個AngularJS
客戶端應用程序使用javascript
(而不是coffeescript或打字稿)Oauth2來驗證WebAPI 2
應用程序使用最新的Identity 2
。我應用程序中的所有軟件都是最新的,基於this example
。我的客戶端瀏覽器目標是IE9及以上。如何在使用AngularJS,WebAPI 2和Oauth 2時將授權信息發回我的客戶端應用程序?
請注意,我對上面的示例做了一些小修改,因爲我沒有對使用轉換髮送到服務器的所有數據進行urlen編碼。相反,我用urlencode只是在下面的身份驗證方法:
user.authenticate = function (userName, password, rememberMe, successCallback, errorCallback) {
var config = {
method: 'POST',
url: '/Token',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: 'grant_type=password&username=' + encodeURIComponent(userName) + '&password=' + encodeURIComponent(password),
};
我與VS2013更新2和服務器上開發,我使用C#,最新的實體框架和SQL Server 2012的
登錄我的客戶端向WebAPI調用/ Token方法並傳遞用戶標識和密碼。 WebAPI然後用一個令牌給我存儲的客戶端迴應。對於每個請求的WebAPI令牌被髮回,並驗證:
$http.defaults.headers.common.Authorization = 'Bearer ' + user.data.bearerToken;
這個作品非常好,到目前爲止,但因爲它代表應用程序無法告訴分配有不同角色的用戶之間的差異。
某些WebAPI方法只能由具有特定角色的用戶執行。我想調整我的前端AngularJS應用程序的菜單,以便只有當用戶具有此角色時,纔會顯示相應的鏈接。我意識到這不會阻止用戶檢查HTML和發佈,但我不關心這一點,因爲我仍然會有方法修飾來限制用戶不在角色中執行操作的能力。
有人可以給我的,我怎麼能做到這一點使用只是產品上面我在這個問題加上JavaScript的網頁令牌何況,如果他們幫助把解決方案的最新套裝提到一個例子。從我理解的角色是由索賠處理,但我不明白如何添加這些並將它們發回給客戶與令牌。我在互聯網上做了大量的研究,但是我還沒有找到任何好的例子,因爲我認爲大多數情況都是非常新的,沒有多少人有機會探索SPA如何使用這些最新的軟件組件。
當回答這個問題時,請注意,我不是在尋找一個可以告訴社區如何在服務器上設置角色的答案,或者是一個解釋在服務器上提供角色檢查有多重要的答案。 。我想幾乎每個人都知道這一點。我真正認爲將使用的是一些非常詳細的技術建議,包括示例代碼和解釋。爲了保持答案的重點,如果不滿足這種需求的答案不作爲建議答案發布,它可能對每個人都有幫助。
預先感謝您。
你能解釋一下這個「角色是由索賠來處理嗎?聲明是角色的替代方法,但如果您仍想使用角色,請添加聲明,聲明的類型爲[ClaimTypes.Role](http://msdn.microsoft.com/zh-cn/library/system.security.claims.claimtypes .role(v = vs.110).aspx) – LostInComputer
我認爲這可能有所幫助:http://msdn.microsoft.com/en-us/library/hh545448.aspx –