0
我需要在瀏覽之前檢查每次是否設置了某個會話。如果會話已設置,則會允許用戶訪問他/她所需的頁面。否則將他重定向到會話設置控制器&操作。爲了這個動作,我做了下面的任務。但我可以找到從過濾器重定向的方法。當從自定義過濾器返回false時,它將重定向到Account Controller。我會很感激他會幫助我的人。
在我的Global.asax.cs我這個編碼:默認從ASP MVC過濾器返回false重定向到帳戶控制器
protected void Application_Start()
{
......
......
RegisterGlobalFilters(GlobalFilters.Filters);
}
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new CustomFilters());
}
然後我在過濾器/ CustomFilters.cs目錄添加喝道代碼。
[AttributeUsage(AttributeTargets.Assembly|AttributeTargets.Class| AttributeTargets.Method)]
public class CustomFilters : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext.Session["HamdunSoft"] == "HamdunSoft")
{
return true;
}
else
{
return false; //I need to redirect to my custom Controller/Action. But from here
it is redirecting Account Controller default.
}
}
}
'httpContext.Response.StatusCode = 302; httpContext.Response.RedirectLocation =「您的自定義控制器/操作」; httpContext.Response.End();' –
謝謝,但你也可以告訴我何時返回代碼控制去的地方。是指帳戶控制器的重定向代碼:)? @KhanhTO –
當你返回false時,它只是退出'CustomFilters'的代碼,但是流程繼續。重定向代碼就是我向您展示的所有代碼,它確實停止了當前的請求處理,並向發送另一請求並重新啓動流程的瀏覽器發送http 302重定向 –