2014-09-10 54 views
3

我有一個啓用了身份驗證(不記名令牌)的Web API。這是由客戶端應用程序調用的,我希望保護它免受匿名使用,所以我想創建一個用戶併爲其創建不記名令牌。在ASP.NET WebAPI中檢索不記名令牌

我可以通過調用寄存器令牌方法創建令牌,但我想從代碼做到這一點。

  1. 據我所知,持票人令牌沒有存儲在數據庫中。可以使用ASP.NET Identity API以某種方式檢索它嗎?

  2. 我還想從代碼中創建此用戶,並將代碼保存在某處,因爲我需要將數據庫部署到多個服務器。

+0

雖然我希望看到問題的直接答案。我正在做類似的事情,我需要從集成測試中生成此令牌。 – 2015-03-10 06:37:15

回答

6

我不推薦使用這種方法去,如果你只有一個客戶端,它會跟你的API,我的理解是,你需要發出非常非常長壽命的訪問令牌,也許一年,並繼續使用該令牌訪問後端API,對吧? 如果此令牌被盜,你會怎麼做?你不能撤銷訪問令牌,所以它有點像你的主密鑰(密碼)。 我的建議是使用OAuth刷新令牌以及訪問令牌。這取決於你的客戶的類型,你可以在這裏檢查這是如何完成的http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/ 刷新標記可以被撤銷,並且它們可以在很長時間後過期。讓我知道你是否需要進一步的細節來實現這一點。

+1

+1爲一個很好的解決方案和非常有趣的博客。我沒有嘗試過,但是可以撤銷更改Security Stamp的訪問令牌嗎? http://stackoverflow.com/questions/22755700/revoke-token-generated-by-usertokenprovider-in-asp-net-identity-2-0/22767286#22767286。順便說一下,感謝您的博客,並感謝您在Stackoverflow上的活躍。 – 2014-09-12 21:16:33

相關問題