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>();
}
}