ASP.NET WebHooks RC 1發(fā)布

責任編輯:editor004

作者:Jonathan Allen

2016-03-21 12:12:04

摘自:INFOQ

正如消息隊列能夠讓同一個組織內(nèi)的多個應(yīng)用相互通信一樣, WebHooks也為來自不同組織的網(wǎng)站提供了一種以異步的形式進行通信的方法。

正如消息隊列能夠讓同一個組織內(nèi)的多個應(yīng)用相互通信一樣, WebHooks也為來自不同組織的網(wǎng)站提供了一種以異步的形式進行通信的方法。

從本質(zhì)上說,WebHook就是一種回調(diào)機制。用戶可以在WebHook提供者中注冊一個自定義的URL,提供者將在適當?shù)臅r機通過這個URL將相關(guān)的事件以消息的方式發(fā)送給應(yīng)用。比方說,用戶可以對Dropbox進行配置,當某個公司的Dropbox帳戶中添加了一個新文件時,同時向該公司的審計與備份基礎(chǔ)設(shè)施發(fā)出一條通知。

雖然從理論上說,這些功能完全有可能實現(xiàn),但在現(xiàn)實世界中往往需要考慮到各種其他因素。如果忽視了這些因素,則惡意用戶可利用這種基礎(chǔ)設(shè)施發(fā)起拒絕攻擊服務(wù),正如pingback曾經(jīng)出現(xiàn)過的漏洞一樣。

為了防止發(fā)生這方面的安全問題,WebHooks設(shè)計了一個驗證步驟。Dropbox的文檔中是這樣寫的:

當你輸入WebHooks URI時,就會自動向該URI發(fā)送一個初始的“驗證請求”。驗證過程使用了一個HTTP GET請求,其中帶有一個名為challenge的查詢參數(shù)。而你的應(yīng)用在對該請求的響應(yīng)中也需要包含這個challenge參數(shù)。這個驗證過程請求的目的是確保你的應(yīng)用確實希望通過該URI獲取通知信息。即使你無意中輸入了錯誤的URI(或者有人試圖惡意地將你的服務(wù)器設(shè)置為他的WebHook),由于你的應(yīng)用無法正確地響應(yīng)challenge請求,因此Dropbox仍然不會向該URI發(fā)送任何通知。

接收

在RC 1版本中,ASP.NET WebHooks包含支持以下提供商的自定義“接收者”:

同時,新版本還提供了一個通用的框架庫,可用于創(chuàng)建用戶自定義的接收者。但用戶必須將該接收者托管在公有的網(wǎng)站上,否則提供者將無法連接到這些接收者。

提供

ASP.NET還提供了一套框架,允許用戶提供自己的WebHooks,讓其他應(yīng)用程序使用。這套框架包括兩個部分,一是WebHooks基礎(chǔ)設(shè)施本身,二是WebHooks注冊信息的存儲機制。目前可直接使用的存儲機制包括SQL Server和Azure Table Storage。

讀者可以在.NET Web Development and Tools博客上獲取完整的教程與示例。同時可以在GitHub找到項目的源代碼,項目本身遵循Apache 2授權(quán)協(xié)議。目前的發(fā)布候選版本需要ASP.NET MVC 5和WebAPI 2的支持。

查看英文原文:ASP.NET WebHooks RC 1

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號