Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Av Steve Smith
API:et HttpContext som program och mellanprogram använder för att bearbeta begäranden har ett abstraktionslager under det som kallas funktionsgränssnitt. Varje funktionsgränssnitt innehåller en detaljerad delmängd av funktionerna som exponeras av HttpContext. Dessa gränssnitt kan läggas till, ändras, bäddas in, ersättas eller till och med tas bort av servern eller mellanprogrammet när begäran bearbetas utan att behöva implementera om hela HttpContext. De kan också användas för att håna funktioner vid testning.
Funktionssamlingar
Egenskapen hos FeaturesHttpContext ger åtkomst till samlingen av funktionsgränssnitt för den aktuella begäran. Eftersom funktionssamlingen kan ändras även inom ramen för en begäran kan mellanprogram användas för att ändra samlingen och lägga till stöd för ytterligare funktioner. Vissa avancerade funktioner är bara tillgängliga genom att komma åt det associerade gränssnittet via funktionssamlingen.
Funktionsgränssnitt
ASP.NET Core definierar ett antal vanliga HTTP-funktionsgränssnitt i Microsoft.AspNetCore.Http.Features, som delas av olika servrar och mellanprogram för att identifiera de funktioner som de stöder. Servrar och mellanprogram kan också ge sina egna gränssnitt ytterligare funktioner.
De flesta funktionsgränssnitt ger valfria, ljusa funktioner och deras associerade HttpContext API:er ger standardvärden om funktionen inte finns. Några gränssnitt anges i följande innehåll efter behov eftersom de tillhandahåller grundläggande funktioner för begäran och svar och måste implementeras för att bearbeta begäran.
Följande funktionsgränssnitt är från Microsoft.AspNetCore.Http.Features:
IHttpRequestFeature: Definierar strukturen för en HTTP-begäran, inklusive protokoll, sökväg, frågesträng, rubriker och brödtext. Den här funktionen krävs för att bearbeta begäranden.
IHttpResponseFeature: Definierar strukturen för ett HTTP-svar, inklusive statuskod, rubriker och brödtext för svaret. Den här funktionen krävs för att bearbeta begäranden.
IHttpResponseBodyFeature: Definierar olika sätt att skriva ut svarstexten med hjälp av antingen en Stream, en PipeWritereller en fil. Den här funktionen krävs för att bearbeta begäranden. Detta ersätter IHttpResponseFeature.Body och IHttpSendFileFeature.
IHttpAuthenticationFeature: Innehåller den ClaimsPrincipal som för närvarande är associerad med begäran.
IFormFeature: Används för att parsa och cachelagrar inkommande HTTP- och multipartformuläröverföringar.
IHttpBodyControlFeature: Används för att styra om synkrona I/O-åtgärder tillåts för begärande- eller svarsorganen.
IHttpActivityFeature: Används för att lägga till Activity information för diagnostiklyssnare.
IHttpBufferingFeature: Definierar metoder för att inaktivera buffring av begäranden och/eller svar.
IHttpConnectionFeature: Definierar egenskaper för anslutnings-ID och lokala adresser och fjärradresser och portar.
IHttpMaxRequestBodySizeFeature: Styr den maximala tillåtna brödtextstorleken för den aktuella begäran.
IHttpRequestBodyDetectionFeature: Anger om begäran kan ha en brödtext.
IHttpRequestIdentifierFeature: Lägger till en egenskap som kan implementeras för att unikt identifiera begäranden.
IHttpRequestLifetimeFeature: Definierar stöd för att avbryta anslutningar eller identifiera om en begäran har avslutats i förtid, till exempel av en klient frånkoppling.
IHttpRequestTrailersFeature: Ger åtkomst till begärandets trailerrubriker, om några finns.
IHttpResetFeature: Används för att skicka återställningsmeddelanden för protokoll som stöder dem, till exempel HTTP/2 eller HTTP/3.
IHttpResponseTrailersFeature: Möjliggör för applikationen att tillhandahålla svarstrailerhuvuden om det stöds.
IHttpSendFileFeature: Definierar en metod för att skicka filer asynkront.
IHttpUpgradeFeature: Definierar stöd för HTTP-uppgraderingar, vilket gör att klienten kan ange vilka ytterligare protokoll som ska användas om servern vill byta protokoll.
IHttpWebSocketFeature: Definierar ett API för att stödja WebSockets.
IHttpsCompressionFeature: Styr om svarskomprimering ska användas via HTTPS-anslutningar.
IItemsFeature: Lagrar samlingen Items för varje begärans programtillstånd.
IQueryFeature: Parsar och cachelagrar frågesträngen.
IRequestBodyPipeFeature: Representerar begärandetexten som en PipeReader.
IRequestCookiesFeature: Parsar och cachelagrar värdena för begärandehuvudet Cookie .
IResponseCookiesFeature: Styr hur svarscookies tillämpas på Set-Cookie rubriken.
IServerVariablesFeature: Den här funktionen ger åtkomst till servervariabler för begäran, till exempel de som tillhandahålls av IIS.
IServiceProvidersFeature: Ger åtkomst till en IServiceProvider med begränsade tjänster för begäranden.
ISessionFeature: Definierar ISessionFactory och ISession abstraktioner för stöd för användarsessioner.
ISessionFeature implementeras av SessionMiddleware (se Session i ASP.NET Core).
ITlsConnectionFeature: Definierar ett API för att hämta klientcertifikat.
ITlsTokenBindingFeature: Definierar metoder för att arbeta med TLS-tokenbindningsparametrar.
ITrackingConsentFeature: Används för att fråga, bevilja och återkalla användarmedgivande om lagring av användarinformation som rör webbplatsaktivitet och funktioner.
Ytterligare resurser
ASP.NET Core