日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

如何为ASP.NET Core设置客户端IP白名单验证

發布時間:2023/12/4 asp.net 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何为ASP.NET Core设置客户端IP白名单验证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇博文中展示了如何在ASP.NET Core應用程序中設置IP白名單驗證的3種方式。

你可以使用一下3種方式:

  • 使用中間件檢查每個請求的遠程IP地址

  • 使用Action過濾器為指定的Controller或action方法添加針對遠程IP地址的檢查

  • 使用IPageFilter為Razor Pages應用添加針對遠程IP地址的檢查


查看項目源代碼

白名單

這里為了簡化代碼,我們將IP白名單列表放置在配置文件appSettings.json中,每個IP之間使用分號分隔。

正式項目中,可以將這個列表保存在數據庫中,便于管理

使用中間件檢查每個請求的遠程IP地址

這里我們首先添加一個中間件AdminSafeListMiddleware

代碼解釋:

  • 這里在AdminSafeListMiddleware的構造函數中,我們傳入了從配置文件中讀取的IP白名單列表

  • 當請求進入當前中間件時,我們使用當前請求上下文的context.Connection.RemoteIpAddress獲取到了客戶端的IP

  • 如果客戶端IP存在于IP白名單列表中,就運行下一個中間件,否則就直接返回401狀態碼。

  • 這里源代碼中,只過濾了非GET請求,如果針對GET請求也需要啟動IP白名單,可以去掉這個判斷

然后我們需要在Startup.cs文件的Configure方法中將中間件添加到ASP.NET Core的中間件管道中。

注意: 這里我們在注冊中間件的時候,傳入了從配置文件中讀取的IP白名單。

使用Action過濾器

如果你只是希望為某些特性的Controller或Action方法添加IP白名單,你可以使用Action過濾器。

這里我們首先添加一個新類ClientIdCheckFilter, 它繼承自ActionFilterAttribute

這里代碼邏輯和前面中間的基本一樣,主要的區別是

  • 這里我們是從IP白名單,我們是從IConfiguration對象中手動獲取的

  • 這里我們復寫了OnActionExecuting方法,如果當前客戶端 IP存在于白名單中,我們就調用基類OnActionExecuting方法,執行當前Action請求,否則就返回一個401狀態碼

  • 這里沒有針對請求類型的判斷,所以指定當前過濾器的Action,GET請求也會受到白名單的限制

第二步,我們需要將這action過濾器添加到服務容器中。

第三步,我們可以在Action方法聲明處添加ServiceFilter特性,傳入的參數是我們之前定義好的ClientIdCheckFilter

例:

使用IPageFilter

Razor Pages應用是ASP.NET Core 2.0中新引入的功能,它是ASP.NET Core Mvc的一個子集。

如果希望Razor Pages應用支持IP白名單,我們需要創建一個新類ClientIdCheckPageFilter, 它實現了IPageFilter接口.

這里的代碼實現和IActionFilter的實現基本一樣,唯一的區別是代碼放在了OnPageHandlerExecuting的實現中。

第二步,我們還是需要將ClientIdCheckPageFilter添加到MVC的過濾器集合中。

總結

本篇我們講解了在ASP.NET Core中啟用IP白名單驗證的3種方式

  • 使用中間件檢查每個請求的遠程IP地址

  • 使用Action過濾器為指定的Controller或action方法添加針對遠程IP地址的檢查

  • 使用IPageFilter為Razor Pages應用添加針對遠程IP地址的檢查


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com


總結

以上是生活随笔為你收集整理的如何为ASP.NET Core设置客户端IP白名单验证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。