0
您好,我目前正在爲我的學校開發一種wiki系統,該系統使用子域來查找wiki所屬的課程。示例math1.wiki.com將成爲數學1課程。 現在,所有這些wiki都使用相同的數據庫並提供wiki ID,以查找要加載的數據。動態網站,全球訪問會話
這裏是我用來查找wiki ID的代碼。 的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嘗試過,但可惜我沒有訪問方法中的會話。
做任何人知道我可以如何實現這個?
如果此人使用鏈接並直接轉到其他控制器會怎麼樣?然後,該網站不會被檢查,並打開錯誤! – Androme 2011-04-18 14:00:39