Error activating IntPtr
我正在尝试在 ASP.NET MVC 4 应用程序中使用 Ninject (v.3) 配置 FluentSecurity (v.1.4)。
ResolveServicesUsing()
如果不抛出上述错误,我无法设置配置表达式。
SecurityConfigurator.Configure(
configuration =>
{
configuration.ResolveServicesUsing(
DependencyResolver.Current.GetServices,
DependencyResolver.Current.GetService);
...
我也尝试过使用另一个重载ResolveServicesUsing()
configuration.ResolveServicesUsing(
type => DependencyResolver.Current.GetServices(type));
FluentSecurity 需要配置 Ninject 以注入查找我的用户角色的方法以及 PolicyViolationHandler 实现。
更新
我发现我可以省去那些有问题的行,而我的 GetRolesFrom() 实现仍然被称为(欢呼):
configuration.GetRolesFrom(
() =>
((IPersonManager)DependencyResolver
.Current
.GetService(typeof(IPersonManager)))
.GetCurrentUserRoles());
但是,我仍然无法让我的 PolicyViolationHandler 工作:
public class RequireRolePolicyViolationHandler : IPolicyViolationHandler
{
public ActionResult Handle(PolicyViolationException exception)
{
return new RedirectToRouteResult(
new RouteValueDictionary(
new
{
action = "AccessDenied",
controller = "Home"
}));
}
}
我正在像这样在 NinjectModule 中进行绑定:
public class SecurityModule : NinjectModule
{
public override void Load()
{
this.Kernel.Bind<IPolicyViolationHandler>()
.To<RequireRolePolicyViolationHandler>();
}
}