[英].Net Architecture: Implement asp.net identity as separate project inside solution
我有一個自定義的MVC 5解決方案,該解決方案分為3個主要項目: Data
, Admin
和Public
。 我需要添加.NET Identity及其相關的實用程序。 我讀過一些文章,展示了如何將其添加到現有的MVC項目中,我認為我可以處理(基本上添加依賴項/文件)。
我的問題是:
Security
項目並將相關的身份信息放入其中並從Admin
/ Web
項目中引用是否有意義? 無論哪種方式,如何在兩個站點之間實施身份認證? 身份將被修改為包括有關用戶的額外信息,因此成為Data
項目的一部分可能有意義……?
另外,我該如何實施身份/安全項目,這樣就不必在每個項目中添加身份? (體系結構是我真正需要幫助的地方)
基本上,我如何使用asp.net Identity將安全性實現為一個單獨的項目?
當我構建這樣的應用程序時,我通常使用的是Dependency Injection,並且有一個定義我的服務的項目將其稱為Core(也許在您的情況下是Data?)。 在這個項目中,我通常將創建一個ISecurityService接口,該接口定義獲取登錄用戶所需的方法:
public interface ISecurityService {
string GetCurrentUserName();
}
您可能想返回的不只是一個字符串,一個對象等。然后,在定義ASP.net Identity功能的asp.net項目中,我只需創建一個實現ISecurityService的ASPNetSecurityService並將其連接到我的IOC /依賴注入系統中。 這樣,任何需要獲取此信息的類都可以僅請求對ISecurityService的引用,而IOC系統將為他們提供注冊的ASPNetSecurityService。
另外,您可以使用相同的技術,並根據需要將ASP.net放在一個單獨的項目中,但是通過使用這種DI技術,可以將Identity Stuff保留在asp.net mvc中,但仍然可以在任何喜歡的地方使用該功能。 。
這有幫助嗎?
我今年做了一些類似的事情,並且按我預期的那樣工作。 我擁有ASP.Net Identity作為自己的項目。 我公司也已對其進行了自定義,以處理圍繞驗證用戶的所有業務邏輯/規則。 我將其設置為NuGet軟件包,可以將其安裝到任何Web項目中,以處理對普通用戶存儲的身份驗證。 消費應用程序不需要了解有關身份驗證的任何詳細信息。 開發人員僅調用提供的方法。
我開始的方式是從默認的MVC模板創建一個項目,並記下該身份所需的所有依賴項。 然后,我將這些依賴項包含在我的自定義NuGet包中。
您可以使用NuGet包資源管理器創建自己的NuGet包: https : //npe.codeplex.com/
我檢查了筆記,這是我寫下的所有依賴項(有可能我忽略了),需要將其添加到NuGet包中:
NuGet軟件包:
添加參考:
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.