我有多租戶ASP.NET MVC應用程序,它利用子域來確定當前租戶。通過數據庫表查找來確定域是否有效。檢查每個頁面請求的條件
哪裏會有最好的地方有一個函數來檢查域是否在數據庫中?如果子域不在數據庫中,它應該重定向到控制器中的Index
動作。
將支票放在方法中的Global.asax
文件不起作用,因爲會產生永不結束的重定向。
我有多租戶ASP.NET MVC應用程序,它利用子域來確定當前租戶。通過數據庫表查找來確定域是否有效。檢查每個頁面請求的條件
哪裏會有最好的地方有一個函數來檢查域是否在數據庫中?如果子域不在數據庫中,它應該重定向到控制器中的Index
動作。
將支票放在方法中的Global.asax
文件不起作用,因爲會產生永不結束的重定向。
會在哪裏有最好的地方一個函數,檢查域是否在數據庫中?如果子域不在數據庫中,它應該重定向到錯誤控制器中的Index操作。
將檢查放在Global.asax文件的Application_BeginRequest方法中不起作用,因爲會產生永不結束的重定向。
這是正確的地方,你只需要檢查請求的URL是不是已經/錯誤。
您可能已經這樣做了,但我想補充一點,它應該是緩存,而不是每個請求的數據庫。
您可以繼承actionFilter屬性並覆蓋onactionExecuting方法。在這種方法ü可以做任何數據庫檢查和重定向用戶適當
public class CustomActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if(DatabaseLookup)
{
return;
}
filterContext.Result = new RedirectResult("http://servername/Error");
}
}
現在ü可以裝點烏爾操作方法與此自定義actionfilter屬性
[CustomActionFilter]
public ActionResult mymethod()
{
//action method goes here
}
在任何控制器或操作被調用之前,我需要更早的過濾器。 – Omar 2010-10-14 19:21:54
「Application_BeginRequest」困擾的一件事是CSS/JS/Image鏈接觸發了該函數,所以我必須有一個條件來檢查該文件是否存在,如果存在,該函數將返回。但我認爲這是因爲Cassani WebServer。 – Omar 2010-10-14 19:21:08