- Custom Routing, but be warned that getting the data from the client is going to be confusing if you ever have to do it.
- Should be the same type of authentication you're used to. The [Authorize] attribute as always.
- The application will authorize on initiation, the "Single Page" part doesn't affect that, except that you must be careful to check the user's permissions on every AJAX request.
- The authorize attribute can be placed at the class (controller) level as well as the method (action) level, so you can be selective with it as needed.
- Partial View Results and AJAX can be confusing. Basically, you're building the AJAX request server side under normal conditions if you want to make it work.
Finally, you may be in over your head trying to do this. Microsoft's ASP.NET is a very thick technology for the web. I know it intimately and still I would tell you that I can build a single page application much quicker in a lot of other technologies. Add to that that I get the impression you're fairly new to ASP.NET based on the types of questions your asking and this will be a major challenge for you.
Good luck. And read this book. It's older technology, but I've never found a better book for teaching good practices. Steve Sanderson is a genius.