簡體   English   中英

如何將ASP.NET MVC Web應用程序的標識/身份驗證部分移到類庫中?

[英]How can I move the identity/authentication part of my ASP.NET MVC web app into a class library?

我有一個使用ASP.NET Identity 2.1的ASP.NET MVC 5 Web應用程序。 我正在嘗試將所有標識/授權代碼從Web項目中移出到類庫中。

我移出了所有樣板UserManagerSigninManager內容,並從Web項目中刪除了ASP.NET Identity和OWIN的所有NuGet程序包(將它們添加到類庫中)。

我還將代碼從Startup.csStartup.Auth.cs文件移到了我的類庫中。 這些包含OWIN配置資料。

現在如何確保在應用程序啟動時調用此代碼? 在原始項目中, Startup類(在Startup.cs )有這樣一行:

[assembly: OwinStartupAttribute(typeof(WebApplication1.Startup))]

我在類庫的等效文件中放置了類似的行(具有正確的類名),但這似乎沒有效果。 此行是否必須在網絡應用程序中顯示? (在那種情況下,大概我需要將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的位置。 因此,您需要在Web應用程序中添加對Microsoft.Owin.Host.systemWeb的引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM