Hi,
1. If you are running on your own servers I would implement a Windows Service to do tasks like that. However to answer your question, though you should not modify global.asax.cs so you can't add things in Application_Start, you can implement a custtom HttpModule and plug it in via web.con fig in the <modules> section, a skeletal example of the HttpModule is like this:
using System;
using System.Web;
using mojoPortal.Business;
using mojoPortal.Web;
namespace yournamespace
{
public class YourHttpModule : IHttpModule
{
private static bool HasAppStarted = false;
private readonly static object _syncObject = new object();
public void Init(HttpApplication application)
{
//this is the closest thing we have to Application_Start
if (!HasAppStarted)
{
lock (_syncObject)
{
if (!HasAppStarted)
{
StartTask();
HasAppStarted = true;
}
}
}
}
private void StartTask()
{
//Code to queue your task goes here
WebTaskManager.StartOrResumeTasks();
}
public void Dispose() { }
}
}
Keep in mind that tasks run on a background thread and from there you have no access to things like HttpContext so any code you call that uses it will fail.
2. In Manage Users page you can set Include In Member List to false and the users will not show up in site statistics, but other than that there is no way if they are authenticated. There is a build in ASP.NET Authentication Service that accesses the Membership Provider, it is meant for use in silverlight or desktop apps. In mojoPortal the service lives at /Services/AuthenticationService.svc. There are some things commented out in Web.config related to this service but I don't have any documentation for you about using it so I would refer you to the Microsoft documentation.
3. I don't remember for sure but ASP.NET webparts are designed for people to be able to personalize the page so the answer might be no, you'll have to experiment yourself, the MyPage feature has been removed and deprecated and I've lost any personal interest in it.
In the future please one question per thread to help keep things easy to find if somone else has the same questions.
Hope that helps,
Joe