Question: We want to set the Thread.CurrentCulture

* **before** the ASP.NET MVC model binder / validator runs (of course), **but**
* **after** the user has been authorized (as we want to load the culture from a UserSettings table)

What's the correct extension point we should go for?

An action filter is too late, Global.asax is too early (user not authorized yet). Anyone with a good idea?

Answer: 
It's a limitation of the network protocols. Both TCP & UDP, for instance, have 16 bit source and destination ports. Even if you *could* increase the number of ports no one could address them.
It seems there's a way, but it's not for free. It's called "bind before connect". See [this short but dense article](https://idea.popcount.org/2014-04-03-bind-before-connect/), which sums it up very nicely.

Having multiple virtual IPs is just a start. Quoting the linked article:

> 
> On Linux the ephemeral port range is a global resource, it's not a specific setting local to an IP address.
> 
> 
> 

So that's bad and you have to improve your starting position with few right settings (where most of them you already found) and get around the global limit with a clever socket allocation technique. The result is that you'll control all the outgoing IPs manually. This also seems not to cope well with other apps on the system using the traditional "connect" way.