如何在ASP.NET MVC 5中将IAuthenticationManager与Ninject绑定?

Gup3rSuR4c

我正在尝试IAuthenticationManager与Ninject绑定,以便可以将其注入到我的AuthenticationService问题是我目前IAuthenticationManagerHttpContext.GetOwinContext()获得Controller,如下所示:

private IAuthenticationManager AuthenticationManager {
    get {
        return this.HttpContext.GetOwinContext().Authentication;
    }
}

我该如何去创造与Ninject,使其知道如何寻找的结合IAuthenticationManagerHttpContext.GetOwinContext()在运行时?是否有可能?我的问题甚至有意义吗?提前致谢!

Gup3rSuR4c

所以,我想通了。Ninject提供了HttpContext直接访问的权限,所以我这样做了:

kernel.Bind<IAuthenticationManager>().ToMethod(
    c =>
        HttpContext.Current.GetOwinContext().Authentication).InRequestScope();

对于任何好奇的人,这就是它。

更新@Meep

因此,Ninject不必与MVC驻留在同一项目中。为此,我将其拉到一个单独的项目中,在我的案例中称为“ X.Dependencies”。它引用了我实际设置绑定所需的所有其他项目,NuGet包等。它包含两个文件,一个是Ninject添加时将其重命名为的原始C#文件NinjectConfiguration,另一个AssemblyReferences一个秘籍文件,该文件是使Visual Studio实际上将所有程序集导入到主项目中所必需的。这是它的代码:

/// <summary>
/// Cheaty way to force Visual Studio to find all assembly references, even the ones not directly used by the main project.
/// </summary>
internal static class AssemblyReferences {
    internal static readonly Type t1 = typeof(Ninject.Web.Mvc.MvcModule);
}

现在,我想可以避免这种情况,但到目前为止对我来说已经奏效了。我很乐意接受建议。我只是从我的MVC项目中添加了对它的引用,然后让WebActivator对其进行初始化,就像它使用常规方法一样。

我还将Owin引入了自己的名为“ X.Owin”的项目,其中包含通常的Owin启动类,我将其简单地重命名为OwinConfiguration

这两个都是我的“域层”的一部分,“域层”还包含几个其他帮助程序项目。列表中另一个值得注意的项目是我的“ X.Mappings”,它用于配置AutoMapper映射。它还使用WebActivator进行自我初始化,因此我只需在MVC项目中添加对其的引用。

由于我已经从MVC项目中提取了很多代码,因此,到目前为止,它所做的基本上只是路由和视图渲染。根据需要将其他所有内容传递到帮助程序项目中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ASP.NET MVC中重置会话超时

来自分类Dev

如何在ASP.NET MVC4中将模型数据与用户关联?

来自分类Dev

如何在ASP Net MVC 3中运行迁移

来自分类Dev

如何在ASP.NET MVC 4中使用Ninject从Web.config绑定设置?

来自分类Dev

如何在ASP.NET MVC 4.0中将数据添加到List <T>?

来自分类Dev

如何在ASP.NET MVC 5中将IAuthenticationManager与Ninject绑定?

来自分类Dev

如何在ASP.NET MVC中获取视图路径

来自分类Dev

如何在ASP.NET MVC中创建Webhook?

来自分类Dev

如何在ASP.NET MVC中运行作业?

来自分类Dev

如何在ASP.NET MVC中组织DAL

来自分类Dev

如何在ASP.NET MVC中配置HTML压缩

来自分类Dev

如何在Asp.net MVC中实现插件/插件?

来自分类Dev

如何在Asp.Net MVC 4中将复杂属性绑定到多态模型中?

来自分类Dev

如何在ASP.NET MVC中读取PPT文件?

来自分类Dev

我如何在ASP.NET MVC中隐藏div

来自分类Dev

如何在ASP NET MVC 6中更新模型?

来自分类Dev

如何在ASP.NET MVC Razor中编码“ /”

来自分类Dev

DATEDIFF如何在Asp.net MVC中编写

来自分类Dev

如何在asp.net mvc中更新图像?

来自分类Dev

ASP.Net MVC中的Ninject Singleton绑定

来自分类Dev

如何在asp.net MVC中创建Ajax链接?

来自分类Dev

如何在ASP.NET MVC中屏蔽出站URL?

来自分类Dev

如何在ASP.NET MVC中运行作业?

来自分类Dev

如何在ASP.NET MVC中读取PPT文件?

来自分类Dev

如何在ASP.NET 5 MVC中访问缓存?

来自分类Dev

如何在Asp .net MVC中验证下拉列表

来自分类Dev

如何在ASP.Net MVC中调用Bootstrap模式?

来自分类Dev

如何在ASP.NET MVC中配置AutoMapper属性

来自分类Dev

如何在 ASP.NET MVC 5 中使用 applozic