如何将 ASP.NET MVC 网络应用程序的 identity/authentication 部分移动到 class 库中?
How can I move the identity/authentication part of my ASP.NET MVC web app into a class library?
我有一个 ASP.NET MVC 5 Web 应用程序,使用 ASP.NET Identity 2.1。我正在尝试将 Web 项目中的所有标识/授权代码移到 class 库中。
我移出了所有样板 UserManager
、SigninManager
的东西,并从 Web 项目中删除了 ASP.NET Identity 和 OWIN 的所有 NuGet 包(将它们添加到 class图书馆)。
我还将 Startup.cs
和 Startup.Auth.cs
文件中的代码移到了我的 class 库中。这些包含 OWIN 配置内容。
我现在如何确保在应用程序启动时调用此代码?在原来的项目中,Startup
class(在Startup.cs
中)有这样一行:
[assembly: OwinStartupAttribute(typeof(WebApplication1.Startup))]
我在我的 class 库中的等效文件中放置了类似的行(具有正确的 class 名称),但这似乎没有效果。这条线必须进入网络应用程序吗? (在这种情况下,大概我需要将 OWIN NuGet 包添加回 Web 项目——这是我希望避免的事情)。
我也尝试将此添加到我的 web.config 文件中:
<add key="owin:appStartup" value="MyClassLibrary.MyNamespace.Startup, My.DLL.Name" />
但是,我不确定如果没有 Web 项目中的某些东西触发它,那将如何工作 - 这又回到将 OWIN 添加到 Web 项目中。
我很困惑 - 任何帮助将不胜感激。
来自http://haacked.com/archive/2010/05/16/three-hidden-extensibility-gems-in-asp-net-4.aspx/
PreApplicationStartMethodAttribute
这个新属性允许您在应用程序启动时在 ASP.NET 管道的早期使用代码 运行。我的意思是很早,甚至在 Application_Start.
之前
PreApplicationStartMethodAttribute 是 Microsoft.Owin.Host.systemWeb 初始化的地方。因此,您需要在网络应用程序中添加对 Microsoft.Owin.Host.systemWeb 的引用。
我有一个 ASP.NET MVC 5 Web 应用程序,使用 ASP.NET Identity 2.1。我正在尝试将 Web 项目中的所有标识/授权代码移到 class 库中。
我移出了所有样板 UserManager
、SigninManager
的东西,并从 Web 项目中删除了 ASP.NET Identity 和 OWIN 的所有 NuGet 包(将它们添加到 class图书馆)。
我还将 Startup.cs
和 Startup.Auth.cs
文件中的代码移到了我的 class 库中。这些包含 OWIN 配置内容。
我现在如何确保在应用程序启动时调用此代码?在原来的项目中,Startup
class(在Startup.cs
中)有这样一行:
[assembly: OwinStartupAttribute(typeof(WebApplication1.Startup))]
我在我的 class 库中的等效文件中放置了类似的行(具有正确的 class 名称),但这似乎没有效果。这条线必须进入网络应用程序吗? (在这种情况下,大概我需要将 OWIN NuGet 包添加回 Web 项目——这是我希望避免的事情)。
我也尝试将此添加到我的 web.config 文件中:
<add key="owin:appStartup" value="MyClassLibrary.MyNamespace.Startup, My.DLL.Name" />
但是,我不确定如果没有 Web 项目中的某些东西触发它,那将如何工作 - 这又回到将 OWIN 添加到 Web 项目中。
我很困惑 - 任何帮助将不胜感激。
来自http://haacked.com/archive/2010/05/16/three-hidden-extensibility-gems-in-asp-net-4.aspx/
PreApplicationStartMethodAttribute
这个新属性允许您在应用程序启动时在 ASP.NET 管道的早期使用代码 运行。我的意思是很早,甚至在 Application_Start.
之前PreApplicationStartMethodAttribute 是 Microsoft.Owin.Host.systemWeb 初始化的地方。因此,您需要在网络应用程序中添加对 Microsoft.Owin.Host.systemWeb 的引用。