我指定的用戶和密碼按照這裏指示http://jaydata.org/blog/jaydata-1.0.5-is-here-with-authentication-support-and-more 但我一直在得到401.任何想法?使用JayData如何基本驗證OData?
回答
你可以用提琴手或wireshark捕捉流量嗎?基本身份驗證不起作用....
我有同樣的問題。我關注了博客文章(http://jaydata.org/blog/jaydata-1.0.5-is-here-with-authentication-support-and-more),並將基礎認證的憑證應用於上下文初始化。
var ctx = new NutritionDataService.NutritionDbEntities({
name: 'oData',
oDataServiceHost: 'https://localhost:44300/Data.svc',
user: "usr1",
password: "test"
});
但似乎沒有設置授權標頭。
http://i.stack.imgur.com/F228l.png
我也想盡了辦法在這個崗位Problems with jaydata basic authentication具有相同的結果 - 沒有授權頭被髮送。
有沒有人有一個想法如何觸發jaydata發送授權頭?
好的,
我找到了上述問題的解決方案。問題在於使用CORS的服務器端配置錯誤。在記錄的請求中(請參閱http://i.stack.imgur.com/F228l.png),Chrome發送「預檢請求」(HTTP請求具有OPTIONS方法)。
與上述的簡單請求不同,「預檢」請求首先通過OPTIONS方法向另一個域上的資源發送HTTP請求,以確定實際請求是否安全發送。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests
我沒有驗證HTTP屬性「方法」在服務器上,所以我的基本驗證模塊開始授權過程的每個傳入HTTP請求並立即失敗做的第一個請求(「預檢要求「),因爲沒有設置授權頭。
在修改HTTP方法的所有驗證之後,按照預期進行工作。
我也不得不調整web.conf
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="BasicAuthModule" type="NutritionDataService.Auth.BasicAuthModule"/>
</modules>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Max-Age" value="3600" />
<add name="Access-Control-Allow-Headers" value="Origin, Content-Type, Accept, MaxDataServiceVersion, Authorization, Access-Control-Allow-Origin, DataServiceVersion" />
<add name="Access-Control-Allow-Methods" value="PUT, POST, GET, DELETE, MERGE, OPTIONS" />
</customHeaders>
</httpProtocol>
接入控制允許頭部中獲得每一個請求頭,否則,你會得到一個501響應。 (在上面的屏幕截圖中,'accept,maxdataserviceversion. dataserviceversion,authorization')
- 1. 身份驗證Jaydata和ASP.NET OData
- 2. JayData V1.5.6 oData v3
- 3. 骨幹Jaydata Odata
- 4. 如何驗證,過濾和驗證基於WCF的oData結果?
- 5. jaydata基本認證的問題
- 6. 使用Jaydata與NTLM autentification OData服務
- 7. OData服務使用的NodeJS和JayData
- 8. 如何使用HTTPS驗證Woocommerce API(基本身份驗證)
- 9. 基於JavaScript/JSON的OData調用如何驗證?
- 10. OData身份驗證
- 11. 使用Curl爲Dynamics Nav驗證OData
- 12. 使用JavaScript獲取基本身份驗證憑證使用JavaScript獲取基本身份驗證憑證
- 13. JayData - 服務器端驗證(CRUD)
- 14. Ansible:使用基本身份驗證
- 15. 使用Rails-API基本驗證
- 16. 使用基本身份驗證
- 17. 使用php的基本身份驗證(如Apache的.htaccess),如何?
- 18. 如何區分使用基本身份驗證的用戶
- 19. 如何在使用基本身份驗證時識別用戶?
- 20. HTTP基本驗證
- 21. JayData與WebAPI和OData不運行回調
- 22. JayData不填充來自OData的對象
- 23. OData/Jaydata其中...在查詢中
- 24. Jaydata和Odata- HTTP請求失敗
- 25. 第一個JayData與Angular和Odata查詢
- 26. 使用基礎驗證來驗證文本字段的長度?
- 27. MVC2使用Windows進行登錄驗證基本驗證
- 28. 基本身份驗證改造+基本身份驗證
- 29. 與基本身份驗證的HTTP基本身份驗證
- 30. 如何將基本身份驗證和https結合使用?
您使用哪種技術實現服務器?像WCF或LightSwitch或JayStorm?藉助WCF,您還必須調整IIS以進行基本身份驗證支持。請嘗試使用Chrome的網絡標籤瀏覽流量,並在OData請求上看到Authorization標頭。 –