Wie kann ich alle HTTP-Anfragen auf POST beschränken?
Dieser Artikel stellt hauptsächlich die Methode von MVC 5 vor, alle HTTP-Anfragen auf POST zu beschränken. Es hat einen gewissen Referenzwert.
Es gibt heute einen Kollegen, der dies angesprochen hat Als Frage wollte er alle von MVC empfangenen HTTP-Anfragen auf den POST-Modus beschränken.
Im folgenden Inhalt werde ich Ihnen die Methode mitteilen, die ich mir ausgedacht habe. Wenn Sie andere Methoden haben, hinterlassen Sie bitte eine Nachricht.
1. HttpPostAttribute-Funktion
Das erste, was mir in den Sinn kommt, ist, dass MVC die HttpPostAttribute-Funktion bereitstellt, die verwendet wird, um HTTP-Anfragen einzuschränken, die im POST-Modus übermittelt werden sollen .
public class HomeController : Controller { [HttpPost] public ActionResult Index() { return View(); } }
Diese Funktion kann nur auf der Aktionsmethode markiert werden und auf diese Weise einen Coder erstellen. Ich akzeptiere es nicht.
// // 摘要: // 表示一个特性,该特性用于限制操作方法,以便该方法仅处理 HTTP POST 请求。 [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)] public sealed class HttpPostAttribute : ActionMethodSelectorAttribute { }
2. Verwenden von HttpModule
In der Asp.Net-Pipeline können Sie HttpModule zum Ändern verwenden Das HttpApplication-Objekt Registrieren Sie Ihr eigenes Ereignishandler-Programm für das Ereignis, um alle HTTP-Anfragen zu steuern.
public class HttpMethodModule : IHttpModule { public void Init(HttpApplication context) { context.PostMapRequestHandler += Context_PostMapRequestHandler; } private void Context_PostMapRequestHandler(object sender, EventArgs e) { HttpApplication httpApplication = (HttpApplication) sender; HttpContext httpContext = httpApplication.Context; //判断当前是否使用的是 MVC 框架来处理请求,其它的请示不做控制。 MvcHandler mvcHandler = httpContext.Handler as MvcHandler; if (mvcHandler != null && httpContext.IsPostMethod() == false) { throw new HttpException(404, "访问的资源不存在。"); } } public void Dispose() { } }
Fügen Sie relevante Konfigurationen in Web.config hinzu.
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <modules> <add name="HttpMethod" type="HttpPostWebApp.Web.HttpMethodModule, HttpPostWebApp"/> </modules> </system.webServer> </configuration>
Nach dem Test kann es unsere Anforderungen erfüllen (die Testergebnisse werden nicht demonstriert).
3. MVCFilter
In MVC können Anfragen über globale Filter gesteuert werden.
public class HttpPostFilter : IAuthorizationFilter { public void OnAuthorization(AuthorizationContext filterContext) { if (filterContext.HttpContext.IsPostMethod() == false) { //如果不是POST请求,则返回404。 filterContext.Result = new HttpNotFoundResult(); } } }
Registrieren Sie sich beim Start des Programms als globaler Filter.
public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HttpPostFilter()); } }
4. Routing-Einschränkungen
Beim Registrieren von Routen können Sie Routen definieren Einschränkungen. Auf folgende Weise kann die Anfragemethode auf POST-Anfragen beschränkt werden.
public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } //限制请求方式必须是POST , constraints:new { httpMethod = new HttpMethodConstraint("POST")} ); } }
5. Überschreiben von Controller-Methoden
In MVC erben standardmäßig alle Controller vom Controller.
Wir können eine abstrakte Klasse von BaseController definieren, OnActionExecuting überschreiben und andere Controller von BaseController erben.
public abstract class BaseController : Controller { protected override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.HttpContext.IsPostMethod() == false) { //如果不是POST请求,则返回404。 filterContext.Result = new HttpNotFoundResult(); } else { base.OnActionExecuting(filterContext); } } }
Diese Methode erfordert eine Änderung der Basisklassen aller Controller und wird nicht empfohlen.
Wenn Sie Ihre eigene Controller-Basisklasse definiert haben, ist der Arbeitsaufwand dieser Methode natürlich auch sehr gering.
Zusammenfassung
Von den oben genannten fünf Methoden sind die zweite, dritte und vierte Methode sehr einfach, aber ich bevorzuge Methode vier, denn wenn sich die Bedürfnisse ändern Der Wartungsaufwand ist minimal.
Wenn Sie andere Methoden haben, hinterlassen Sie bitte eine Nachricht, danke!
Demo-Download: mvchttppostwebapp
Das obige ist der detaillierte Inhalt vonWie kann ich alle HTTP-Anfragen auf POST beschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Der HTTP-Statuscode 520 bedeutet, dass der Server bei der Verarbeitung der Anfrage einen unbekannten Fehler festgestellt hat und keine genaueren Informationen bereitstellen kann. Wird verwendet, um darauf hinzuweisen, dass bei der Verarbeitung der Anforderung durch den Server ein unbekannter Fehler aufgetreten ist, der durch Serverkonfigurationsprobleme, Netzwerkprobleme oder andere unbekannte Gründe verursacht werden kann. Dies wird normalerweise durch Serverkonfigurationsprobleme, Netzwerkprobleme, Serverüberlastung oder Codierungsfehler verursacht. Wenn Sie auf einen Fehler mit dem Statuscode 520 stoßen, wenden Sie sich am besten an den Website-Administrator oder das technische Support-Team, um weitere Informationen und Unterstützung zu erhalten.

Mit der Beliebtheit von Videokonten in sozialen Medien beginnen immer mehr Menschen, Videokonten zu nutzen, um ihr tägliches Leben, ihre Erkenntnisse und Geschichten zu teilen. Bei manchen Benutzern kann es jedoch vorkommen, dass die Kommentare eingeschränkt sind, was zu Verwirrung und Unzufriedenheit führen kann. 1. Wie entferne ich Kommentarbeschränkungen für Videokonten? Um die Einschränkung beim Kommentieren eines Videokontos aufzuheben, müssen Sie zunächst sicherstellen, dass das Konto ordnungsgemäß registriert wurde und die Authentifizierung mit echtem Namen abgeschlossen ist. Für Videokonten gelten Anforderungen für Kommentare. Nur Konten, die die Authentifizierung mit echtem Namen abgeschlossen haben, können Kommentarbeschränkungen aufheben. Wenn es Auffälligkeiten im Konto gibt, müssen diese Probleme behoben werden, bevor die Kommentarbeschränkungen aufgehoben werden können. 2. Halten Sie die Community-Standards des Videokontos ein. Für Videokonten gelten bestimmte Standards für Kommentarinhalte. Wenn der Kommentar illegale Inhalte enthält, wird Ihnen das Sprechen untersagt. Um die Kommentarbeschränkungen aufzuheben, müssen Sie sich an die Community des Videokontos halten

Verstehen Sie die Bedeutung des HTTP 301-Statuscodes: Häufige Anwendungsszenarien der Webseitenumleitung. Mit der rasanten Entwicklung des Internets werden die Anforderungen der Menschen an die Webseiteninteraktion immer höher. Im Bereich Webdesign ist die Webseitenumleitung eine gängige und wichtige Technologie, die über den HTTP-301-Statuscode implementiert wird. In diesem Artikel werden die Bedeutung des HTTP 301-Statuscodes und häufige Anwendungsszenarien bei der Webseitenumleitung untersucht. Der HTTP-Statuscode 301 bezieht sich auf eine permanente Weiterleitung (PermanentRedirect). Wenn der Server die des Clients empfängt

HTTP-Statuscode 200: Erkunden Sie die Bedeutung und den Zweck erfolgreicher Antworten. HTTP-Statuscodes sind numerische Codes, die den Status einer Serverantwort angeben. Darunter zeigt der Statuscode 200 an, dass die Anfrage vom Server erfolgreich verarbeitet wurde. In diesem Artikel wird die spezifische Bedeutung und Verwendung des HTTP-Statuscodes 200 untersucht. Lassen Sie uns zunächst die Klassifizierung von HTTP-Statuscodes verstehen. Statuscodes sind in fünf Kategorien unterteilt, nämlich 1xx, 2xx, 3xx, 4xx und 5xx. Unter diesen zeigt 2xx eine erfolgreiche Antwort an. Und 200 ist der häufigste Statuscode in 2xx

Lösung: 1. Überprüfen Sie den Inhaltstyp im Anforderungsheader. 3. Verwenden Sie das entsprechende Codierungsformat. 5. Überprüfen Sie die serverseitige Unterstützung.

Wie implementiert JavaScript das Ziehen und Zoomen von Bildern und beschränkt sie gleichzeitig auf den Container? Bei der Webentwicklung müssen wir häufig Bilder ziehen und zoomen. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript das Ziehen und Zoomen von Bildern implementieren und Vorgänge innerhalb des Containers einschränken. 1. Ziehen Sie das Bild. Um das Bild zu ziehen, können wir Mausereignisse verwenden, um die Mausposition zu verfolgen und das Bild entsprechend zu verschieben. Das Folgende ist ein Beispielcode: // Holen Sie sich das Bildelement varimage

Die HTTP-Anfrage läuft ab und der Server gibt häufig den Statuscode 504GatewayTimeout zurück. Dieser Statuscode zeigt an, dass der Server bei der Ausführung einer Anforderung immer noch nicht in der Lage ist, die für die Anforderung erforderlichen Ressourcen abzurufen oder die Verarbeitung der Anforderung nach einer gewissen Zeit nicht abzuschließen. Es handelt sich um einen Statuscode der 5xx-Reihe, der darauf hinweist, dass beim Server ein vorübergehendes Problem oder eine Überlastung aufgetreten ist, was dazu führt, dass die Anfrage des Clients nicht korrekt verarbeitet werden kann. Im HTTP-Protokoll haben verschiedene Statuscodes spezifische Bedeutungen und Verwendungszwecke, und der Statuscode 504 wird verwendet, um Probleme mit der Zeitüberschreitung von Anfragen anzuzeigen. im Kunden

Wie implementiert man HTTP-Streaming in C++? Erstellen Sie einen SSL-Stream-Socket mit Boost.Asio und der asiohttps-Clientbibliothek. Stellen Sie eine Verbindung zum Server her und senden Sie eine HTTP-Anfrage. Empfangen Sie HTTP-Antwortheader und drucken Sie sie aus. Empfängt den HTTP-Antworttext und gibt ihn aus.
