1
我有一個使用WSFederationAuthentication管理身份驗證的Asp.net MVC應用程序。我在控制器操作中進行了一系列調用,這些調用可能導致需要再次進行身份驗證。現在,當我確定需要重新進行身份驗證時,我會拋出UnauthorizedAccessException。從異常過濾器強制聯合身份驗證重定向
我實現了一個ExceptionFilter爲捕獲這個UnauthroizedAccessException並返回一個401這裏控制器的代碼:
public void OnException(System.Web.Mvc.ExceptionContext context)
{
if (context.Exception is UnauthorizedAccessException)
{
context.Result = new HttpUnauthorizedResult("Login again.");
context.ExceptionHandled = true;
return;
}
}
的問題是,聯合身份驗證的HttpModule不重定向這個請求到STS 。用戶只收到401錯誤。 ExceptionFilter是否已經太遲以致於無法返回401?是否有另一種方法來強制用戶再次進行身份驗證?
這不起作用,因爲「這」不是一個控制器。 ExceptionFilter被實現爲它自己的類,並且RedirectToAction似乎不可用。 – Corez
答案已更新。 –
我和上面的#1一起去了。工作很好。謝謝! – Corez