2013-04-21 124 views
5

我正在.NET 4.0上開發ASP.NET MVC 4站點。我試圖驗證網站到一個WEB API。現在,該網站將傳遞用戶名和密碼,WEB API將對其進行身份驗證。如果通過身份驗證,WEB API將返回帶有角色的令牌,生存時間等。我正在尋找一些關於此的指針。Asp.net MVC 4 + WEB API - 自定義身份驗證令牌

1.)如何生成此令牌?我不想使用STS或其他任何東西。即使是一種非傻瓜式的方法也能做到。 2.)在MVC方面,我必須接收此令牌並將當前會話設置爲已驗證,並確保一旦TTL過期,我將用戶重定向到登錄頁面?同樣在我需要發送這個令牌的所有WEB API請求中。

回答

4
效果很好

通常,您可以生成令牌並手動實施其驗證邏輯,也可以使用一些第三方工具。

對於手動實現在博客文章中看herehere,它可能是一個很好的起點。它基於http://oauth.googlecode.com/svn/code/csharp/OAuthBase.cs類。

對於客戶端和OAuth概念,您可以閱讀here一個很好的答案。

從第三方可以選擇goo選擇DotNetOpenAuth。這是一個很好的庫,但使用OAuth時會很複雜。嘗試看其Web API OAuth2 sample

第二個問題 - 答案是肯定的。您驗證令牌並將請求設置爲已驗證。無論如何,你可以看看Wep API OAuth示例,它在哪裏實現。

3

你可能會考慮使用的WebAPI令牌驗證引導套餐我目前的工作 - 可在GitHubNuGet

文檔和代碼示例可在GitHub Wiki

簡單令牌和用戶身份驗證和授權引導 WebAPI應用程序。提供'TokenAuthApiController',它具有 內置支持登錄和註銷(基於cookie)和自動 令牌解析和驗證(內部查詢字符串,表單數據或Cookie)。

這種引導讓你簡單地對動作用適當的AccessLevel[TokenAuthentication]屬性:AdminUserPublicAnnonymous

此引導還提供TokenAuthApiController,從傳統的繼承ApiController並增加了額外功能的詳細here

隨意拉請求,報告問題或有助於