In einigen frühen Vorschauen von ASP.NET MVC wurden Argumente für Controller-Methoden aufgelöst, indem zunächst der Query-String, dann das Formular und anschließend die Sammlungen von Cookies und Servervariablen untersucht wurden, wie in dieser Beitrag von Stephen Walther .
Dieser Code hat zum Beispiel funktioniert:
public class MyController : Controller {
// This should bind to Request.Cookies["userId"].Value
public ActionResult Welcome(int userId) {
WebUser wu = WebUser.Load(userId);
ViewData["greeting"] = "Welcome, " + wu.Name;
return(View());
}
}
aber jetzt gegen den Release Candidate läuft, wirft es eine Ausnahme, weil es keinen Wert für userId finden kann, obwohl userId definitiv in den Anfrage-Cookies erscheint.
Wurde diese Änderung irgendwo in den Versionshinweisen erwähnt? Wenn es sich um eine Änderung des Frameworks handelt, gibt es dann eine empfohlene Alternative zur Bindung von Cookies und Servervariablen auf diese Weise?
EDIT: Vielen Dank an alle, die bisher geantwortet haben. Ich habe vielleicht ein schlechtes Beispiel gewählt, um dies zu demonstrieren; unser Code verwendet Cookies für verschiedene Formen der "bequemen", aber nicht essentiellen Persistenz (Speicherung der Reihenfolge von Suchergebnissen und so weiter), es ist also keineswegs nur ein Authentifizierungsproblem. Die Auswirkungen auf die Sicherheit, wenn man sich auf Benutzer-Cookies verlässt, sind gut dokumentiert; ich bin eher an aktuellen Empfehlungen für flexible, leicht testbare Techniken zum Abrufen von Cookie-Werten interessiert. (Wie Sie sich sicher denken können, hat das obige Beispiel zwar Sicherheitsimplikationen, ist aber sehr, sehr einfach zu testen).
0 Stimmen
Können Sie Ihre Routing-Tabelle veröffentlichen?
0 Stimmen
Wenn Sie in ASP.NET einen 'Request["blah"]' ausführen, sucht er im Query-String, im Form-Post, in den Cookies und, wie ich glaube, in den Servervariablen (eek). Wenn die Absicht war, nur query-string/form-post für mehr "beabsichtigte" Datenerfassung zu bewegen, dann bin ich ganz dafür... nur eine Vermutung aber wirklich :)
0 Stimmen
Siehe meinen Beitrag über "flexible, leicht testbare Techniken zum Abrufen von Cookie-Werten".