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

