Здравствуйте. В настоящее время я занимаюсь разработкой своего рода вики-системы для моей школы. Эта система использует поддомен, чтобы найти курс, к которому относится вики. Примером math1.wiki.com будет курс Math 1.
Теперь все эти вики используют одну и ту же базу данных и получают идентификатор вики, чтобы найти, какие данные загрузить.
Вот код, который я использую, чтобы найти идентификатор вики.
Global.asax
protected void Session_Start()
{
var database = new DataContext();
IWikiRepository rep = new WikiRepository(database);
IWikiService service = new WikiService(rep);
var domain = HttpContext.Current.Request.Url.Authority;
var port = "";
if (domain.Contains(':'))
{
var tmp = domain.Split(':');
domain = tmp[0];
port = tmp[1];
}
var split = domain.Split('.');
var subdomain = split[0];
// if (subdomain == "localhost")
// subdomain = "wiki1";
var wiki = service.GetSite(subdomain);
if (wiki == null)
{
Response.StatusCode = 404;
return;
}
Session["CurrentWiki"] = wiki;
}
Это все хорошо, но я хочу, чтобы система mvc отправляла запрос 404, если в поддомене не было найдено вики. Но это можно сделать не только в методе session_start (), так как он запускается только один раз за сеанс, который я пытался с помощью Application_BeginRequest, но, к сожалению, у меня нет доступа к сеансам в методе.
Кто-нибудь знает, как я могу это реализовать?