【发布时间】:2013-09-12 12:10:21
【问题描述】:
Error activating ISecurityContext using binding from ISecurityContext to SecurityContext.
当我尝试在 ASP.NET MVC 4 Web 应用程序中使用 Ninject.Web.Mvc3 配置 FluentSecurity 2.0.0 时,我遇到了上述错误。
我认为 FluentSecurity 的内部 IoC 和 Ninject IoC 可能会发生冲突。或者我可能在 SecurityConfigurator 中错误地设置了 DependencyResolver。
我需要使用 IoC 进行设置,因为我需要通过注入的类获取 UserRoles。
public static class SecurityConfig
{
public static ISecurityConfiguration Configure()
{
SecurityConfigurator.Configure(
configuration =>
{
configuration.ResolveServicesUsing(
DependencyResolver.Current.GetServices,
DependencyResolver.Current.GetService);
configuration.DefaultPolicyViolationHandlerIs(() => new DefaultPolicyViolationHandler());
configuration.GetAuthenticationStatusFrom(
() => HttpContext.Current.User.Identity.IsAuthenticated);
configuration.GetRolesFrom(
() =>
((IPersonManager)DependencyResolver
.Current
.GetService(typeof(IPersonManager)))
.GetCurrentUserRoles());
configuration.ForAllControllers().DenyAnonymousAccess();
configuration.For<AdminController>().RequireAnyRole(Role.Administrator);
});
return SecurityConfiguration.Current;
}
}
我哪里出错了?还有其他方法可以实现吗?
【问题讨论】:
标签: asp.net-mvc-4 ninject.web.mvc fluent-security