使用Fluent Security,我使用DenyAnonymousAccess,DenyAuthenticationAccess和RequireRole配置了網站訪問。從RequiredRole和其他策略中捕獲異常並使用Fluent Security重定向
SecurityConfigurator.Configure(configuration =>
{
configuration.ResolveServicesUsing(new FluentSecurityServiceLocator());
configuration.GetAuthenticationStatusFrom(CurrentUser.IsAuthenticated);
configuration.GetRolesFrom(CurrentUser.Roles);
configuration.For<HomeController>().DenyAnonymousAccess();
configuration.For<ReportsController>().RequireRole(UserRole.Administrator);
configuration.For<AccountController>().DenyAuthenticatedAccess();
configuration.For<AccountController>(x => x.ChangePassword()).DenyAnonymousAccess();
});
我已經爲DenyAnonymousAccess處理了PolictyViolationException並將其重定向到了登錄頁面。
public ActionResult Handle(PolicyViolationException exception)
{
return new RedirectToRouteResult(
new RouteValueDictionary(new { action = "Login", controller = "Account" })
);
}
但我不確定是否從RequireRole捕獲異常是相同的過程?如果RequireRole被違反,我需要重定向。
此外,當用戶未登錄並單擊附加到角色的鏈接時,我得到未處理的denyanonymous訪問異常版本。我在配置和實現中做錯了什麼?
好吧,我明白了。因此定義的每個角色都轉到RequireRolePolicyViolationHandler。謝謝! – asunrey