Вы должны настроить маршрутизацию, чтобы добраться до соответствующего контроллера + действие, как обычно, и внутри действия (или намного лучше - с помощью ActionFilter), исследовать поддомен и установить соответствующий код, который определяет, кто пользователь, дальнейшая обработка.
Примером фильтра будет:
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class SubdomainFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
int? userID = null;
Uri uri = filterContext.HttpContext.Request.Url;
if (uri != null)
{
string domain = uri.Host;
// do whatever you need analyzing the 'domain' variable... like getting the user id according to the subdomain. Let's say we discoveered that the user id is 1.
userID = 1;
}
if (filterContext.ActionParameters.ContainsKey("Subdomain"))
filterContext.ActionParameters["SubdomainUser"] = userID;
base.OnActionExecuting(filterContext);
}
}
и тогда ваше действие будет:
[SubdomainFilter]
public virtual ActionResult GetUserName(int? userID)
{
...
}