As soon as an iteration (Sprint) is over, we need to lock it so that nobody is able to check-in into that iteration anymore (unless they override the check-in warnings of course).
How can I achieve this? I took a look at the Team Foundation Server SDK namespace (Microsoft.TeamFoundation) but found nothing so far.
Here's the solution I kept:
http://intellitect.com/transitioning-between-sprintsiterations-with-tfs/
In short, you use Iteration Paths to determine the current sprint.
Then you create a query that returns all work items under the current iteration (which identifies your current sprint).
You use a Work Item Query Policy to ensure that all work items associated with the check-in are part of the result of the query (and thus part of the current iteration/sprint).