Asp.net Core 如何設(shè)置黑白名單(路由限制)
在原有的AspnetMvc中我們會使用到路由訪問限制,在AppStart/RouteConfig.cs中寫上如下:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
但是在aspnet core mvc已經(jīng)不存在RouteConfig.cs的這個給文件和這種寫法,我們該如何在Aspnet core mvc中實現(xiàn)相同效果呢?
這里我們需要使用到的中間件時UrlFirewall
1)說明:
UrlFirewall 是一個開源、輕便的對http請求進行過濾的中間件,可使用在webapi或者網(wǎng)關(guān)
2)介紹:
UrlFirewall 是一款http請求過濾中間件,可以和網(wǎng)關(guān)(Ocelot)搭配,實現(xiàn)屏蔽外網(wǎng)訪問內(nèi)部接口,只讓內(nèi)部接口之間相互通訊,而不暴露到外部。它支持黑名單模式和白名單模式,支持自定義http請求響應(yīng)代碼。具有良好的擴展性,可自己實現(xiàn)驗證邏輯,從數(shù)據(jù)庫或者Redis緩存等介質(zhì)實現(xiàn)對規(guī)則的檢索
3)使用:
1],從Nuget添加組件到你的ASP.NET Core項目
Install-Package UrlFirewall.AspNetCore
2],配置DI在startup.cs的ConfigureServices
services.AddUrlFirewall(options => { options.RuleType = UrlFirewallRuleType.Black; options.SetRuleList(Configuration.GetSection("UrlBlackList")); options.StatusCode = HttpStatusCode.NotFound; });
3],配置中間件在startup.cs 中的Configure
app.UseUrlFirewall();//啟用防火墻 開啟黑名單請求路徑 if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); //HttpContext app.UseStaticHttpContext(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); }
4],根絕2中的Configuration.GetSection("UrlBlackList")需要在使用的Section名稱·UrlBlackList·我們在appsettings.json/appsettings.Devolopment.json文件中添加以下配置
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, //防火墻過濾這類型的訪問 "UrlBlackList": [ { "Url": "{resource}.axd/{*pathInfo}", "Method": "All" } ] }
這樣,我們服務(wù)器上的.axd的就不會被請求到
到此這篇關(guān)于Asp.net Core 如何設(shè)置黑白名單(路由限制)的文章就介紹到這了,更多相關(guān)Asp.net Core設(shè)置路由黑白名單 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
asp.net下Repeater使用 AspNetPager分頁控件
AspNetPager針對ASP.NET分頁控件的不足,提出了與眾不同的解決asp.net中分頁問題的方案2010-03-03ASP.NET MVC視圖頁使用jQuery傳遞異步數(shù)據(jù)的幾種方式詳解
本文詳細(xì)講解了ASP.NET MVC視圖頁使用jQuery傳遞異步數(shù)據(jù)的幾種方式,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09.NET?Core?使用委托實現(xiàn)動態(tài)流程組裝的思路詳解
模擬管道模型中間件(Middleware)部分,運用委托,進行動態(tài)流程組裝,本次代碼實現(xiàn)就直接我之前寫的動態(tài)代理實現(xiàn)AOP的基礎(chǔ)上改的,就不另起爐灶了,主要思路就是運用委托,具體實現(xiàn)過程跟隨小編一起看看吧2022-01-01利用委托把用戶控件的值顯示于網(wǎng)頁案例應(yīng)用
用戶控件(UserControl)是集成一個功能,需要處理好的數(shù)據(jù),然后存數(shù)據(jù)庫中并顯示于網(wǎng)頁上,讓用戶能檢測到處理的數(shù)據(jù)情況,接下來將介紹利用委托把用戶控件的值顯示于網(wǎng)頁上,感興趣的朋友可以了解下2013-02-02