Ich habe ein paar ASP.Net MVC und WebAPI-Projekte. Die meisten von ihnen sind auf dem neuesten Stand (MVC 5/WebAPI 2). Ich habe meine Sicherheitsannahmen doppelt überprüft, seit ich einen globalen Filter (für MVC) und einen delegierenden Handler (für WebAPI) implementiere, um die Sicherheit im System zu vereinheitlichen.ASP.Net vs MVC vs WebAPI und UseTaskFriendlySynchronizationContext
In diesem Zusammenhang habe ich über ein paar Artikel und Beiträge kommen (siehe unten), die Sie immer UseTaskFriendlySynchronizationContext
zu true
(wird standardmäßig false
) werden Einstellung sagen sollte. Das erscheint mir seltsam, da selbst in VS2013, die MVC 5 und WebAPI 2 verwenden, neue Projektvorlagen (sowie die ASP.Net WebForms Vorlage) diese App-Einstellung überhaupt nicht festlegen.
Die MSDN-Dokumentation zu dieser Einstellung ist praktisch nicht vorhanden und die Posts, die ich finde, dass es für asynchrone Programmierung erforderlich ist, scheinen im Kontext von WebForms zu sein.
So sind hier meine Fragen:
- diese Einstellung auf alles ASP.Net Gegenstandslos oder ist es spezifisch auf die Seite Lifecycle Sachen in ASP.Net (was ich nicht viel benutzt habe)
- Wenn es für die moderne asynchrone Programmierung so wichtig ist, warum verweisen keine Tutorials oder Vorlagen darauf?
- Würden die Ansprüche von Thread.CurrentPrincipal in einer referenzierten Bibliothek, die ConfigureAwait (false) verwendet, irgendwelche Probleme darstellen, oder wird sich der Ablauf des logischen Aufrufkontexts von ExecutionContext dort einstellen? (Meine Lektüre und Prüfung so gibt weit, dass es wird)
Hier sind einige der Artikel, die ich in Bezug auf UseTaskFriendlySynchronizationContext
gesehen habe:
- Set Thread.CurrentPrincipal Asynchronously?
- ASP.NET appSettings Element on MSDN
- What's the meaning of "UseTaskFriendlySynchronizationContext"?
- Understanding the
SynchronizationContext
in ASP.NET by Marcus van Houdt - Why is an "await Task.Yield()" required for Thread.CurrentPrincipal to flow correctly?
Einige Artikel, die mir wirklich auf einen Griff bekommen geholfen, wie das alles Zeug funktioniert, dass UseTaskFriendlySynchronizationContext
nie erwähnen:
- ExecutionContext vs SynchronizationContext by Stephen Toub
- It's All About the SynchronizationContext by Stephen Cleary
Ich zog # 3 in seine eigene Frage mit einigen schnellen Beispielcode. Wenn Sie eine Chance haben, das zu sehen, würde ich es wirklich schätzen! ([Security, Thread.CurrentPrincipal und ConfigureAwait (false)] (http://stackoverflow.com/questions/20479888/security-thread-currentprincipal-and-configureawaitfalse)) –