真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ASP.NETCore開發(fā)之HttpContext-創(chuàng)新互聯(lián)

ASP.NET Core中的HttpContext開發(fā),在ASP.NET開發(fā)中我們總是會(huì)經(jīng)常用到HttpContext。

成都創(chuàng)新互聯(lián)致力于網(wǎng)站建設(shè),網(wǎng)站制作設(shè)計(jì),營銷網(wǎng)頁按需定制設(shè)計(jì),成都外貿(mào)網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站建設(shè),小程序設(shè)計(jì),網(wǎng)站SEO優(yōu)化,網(wǎng)站設(shè)計(jì)制作案例豐富,是成都做網(wǎng)站公司和建站公司,歡迎咨詢。

那么在ASP.NET Core中要如何使用HttpContext呢,下面就來具體學(xué)習(xí)ASP.NET Core HttpContext。

注入HttpContextAccessor

ASP.NET Core中提供了一個(gè)IHttpContextAccessor接口,HttpContextAccessor 默認(rèn)實(shí)現(xiàn)了它簡化了訪問HttpContext。

它必須在程序啟動(dòng)時(shí)在IServicesCollection中注冊,這樣在程序中就能獲取到HttpContextAccessor,并用來訪問HttpContext。

services.AddSingleton();

獲取HttpContextAccessor

下面來實(shí)際做一個(gè)操作,獲取 HttpContextAccessor。

新建一個(gè)ASP.NET Core Web 應(yīng)用程序,選擇Web 應(yīng)用程序。 身份驗(yàn)證勾選為不進(jìn)行身份驗(yàn)證。

然后在HomeController 加入如下代碼:

ASP.NET Core開發(fā)之HttpContext

    public class HomeController : Controller
    {        private IHttpContextAccessor _accessor;        public HomeController(IHttpContextAccessor accessor)
        {
            _accessor = accessor;
        }        public IActionResult Index()
        {            var httpcontext = _accessor.HttpContext;            return View();
        }
    }

ASP.NET Core開發(fā)之HttpContext

這樣就能獲取到 HttpContext

ASP.NET Core開發(fā)之HttpContext

運(yùn)行以后就能獲取到 HttpContext 對象。上面也說到,必須在程序啟動(dòng)時(shí)注入才能獲取到HttpContextAccessor。

那么新建的程序是在哪注入的呢。

這里就是在

        public void ConfigureServices(IServiceCollection services)
        {            // Add framework services.            services.AddMvc();
        }

services.AddMvc() 中注入。

實(shí)現(xiàn)HttpContext.Current

大家在ASP.NET 中大量用 HttpContext.Current獲取HttpContext ,現(xiàn)在ASP.NET Core已經(jīng)不這么做了。

不過如果你還是想用靜態(tài)  HttpContext.Current ,降低遷移舊程序的成本,還是可以實(shí)現(xiàn)的。

新建一個(gè)靜態(tài) HttpContext 類,

ASP.NET Core開發(fā)之HttpContext

    public static class HttpContext
    {        private static IHttpContextAccessor _accessor;        public static Microsoft.AspNetCore.Http.HttpContext Current => _accessor.HttpContext;        internal static void Configure(IHttpContextAccessor accessor)
        {
            _accessor = accessor;
        }
    }

ASP.NET Core開發(fā)之HttpContext

然后接著再添加一個(gè)擴(kuò)展類。

ASP.NET Core開發(fā)之HttpContext

    public static class StaticHttpContextExtensions
    {        public static void AddHttpContextAccessor(this IServiceCollection services)
        {
            services.AddSingleton();
        }        public static IApplicationBuilder UseStaticHttpContext(this IApplicationBuilder app)
        {            var httpContextAccessor = app.ApplicationServices.GetRequiredService();
            HttpContext.Configure(httpContextAccessor);            return app;
        }
    }

ASP.NET Core開發(fā)之HttpContext

接著就可以在Startup 類中進(jìn)行調(diào)用。

默認(rèn)情況下如果在MVC項(xiàng)目中直接調(diào)用  UseStaticHttpContext() 即可。

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            app.UseStaticHttpContext();

在沒有注入 HttpContextAccessor的項(xiàng)目中,還需在ConfigureServices 方法中調(diào)用

services.AddHttpContextAccessor();

然后就可以在其他地方使用HttpContext.Current。

        public IActionResult Index()
        {
            var statichttpcontext = HttpContextDemo.HttpContext.Current;            return View();
        }

這里演示的是在Controller 中調(diào)用,其實(shí)更多的是在其他地方調(diào)用,如中間件及一些自己寫的Service。

Controller 中其實(shí)可以直接使用HttpContext,ControllerBase類中有一個(gè)HttpContext 屬性。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


新聞名稱:ASP.NETCore開發(fā)之HttpContext-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://weahome.cn/article/ehdcs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部