我需要使用更復雜的授權,所以我創建了類,當用戶沒有操作權限時,可以拋出UnauthorizedAccessException。但是,我應該如何正確處理這個異常呢?當這個異常被拋出時,我需要重定向到登錄頁面,所以我認爲我不能使用控制器的OnException方法。作爲臨時解決方案,我用這個:ASP.NET MVC2句柄控制器的UnauthorizedAccessException
public abstract class MyController : Controller
{
protected override void ExecuteCore()
{
try
{
base.ExecuteCore();
}
catch (UnauthorizedAccessException)
{
HttpContext.Response.StatusCode = 401;
}
}
}
看來它可以工作,但我不知道它是否是適當的解決方案。
感謝您的提示。
是否可以將此屬性隱式添加到所有控制器? Becouse我需要這個處理程序全局工作。 – 2011-04-28 20:49:07
您可以將其添加到其他控制器繼承的基礎控制器。我在我的項目中這樣做。 – Tejs 2011-04-28 20:49:52
謝謝。使用此代碼的屬性:filterContext.Result = new HttpUnauthorizedResult();這對我來說似乎是最好的。 – 2011-04-30 15:44:58