Determining the Current User Context inside Sharepoint

What's the best way to determine the current user within a custom web part
developed for MOSS 2007? I've found four solutions so far, but I'm pretty sure
there are more:

1. Use System.Web.HttpContext.Current.User.Identity.Name, like in any
ASP.Net web application

2. Use System.Security.Principal.WindowsIdentity.GetCurrent().Name

3. Have the Current User Filter send the current user to your web part,
and (of course) make your web part a consumer of that value.

4. SPWeb web = SPControl.GetContextWeb(Context);

SPUser currentUser = web.CurrentUser;