C# .Net体系结构:将asp.Net标识作为解决方案内的独立项目实现
我有一个自定义MVC 5解决方案,分为3个主要项目,C# .Net体系结构:将asp.Net标识作为解决方案内的独立项目实现,c#,asp.net,asp.net-identity,asp.net-mvc-5.2,C#,Asp.net,Asp.net Identity,Asp.net Mvc 5.2,我有一个自定义MVC 5解决方案,分为3个主要项目,数据,管理,和公共。 我需要添加.NET标识及其相关实用程序。 我读过一些文章,展示了如何将它添加到现有的MVC项目中,我认为我可以处理这个问题(基本上是添加依赖项/文件) 我的问题是: 添加一个安全性项目,并将相关的身份信息和管理员/网站项目的参考信息放在其中,这样做有意义吗 或者它应该驻留在数据项目中,因为它已经被引用并处理数据了 无论哪种方式,如何在两个站点之间实现标识?身份将被修改,以包含有关用户的额外信息,因此作为数据项目的一部分可能
数据
,管理
,和公共
。
我需要添加.NET标识及其相关实用程序。
我读过一些文章,展示了如何将它添加到现有的MVC项目中,我认为我可以处理这个问题(基本上是添加依赖项/文件)
我的问题是:
安全性
项目,并将相关的身份信息和管理员
/网站
项目的参考信息放在其中,这样做有意义吗李>
数据项目的一部分可能有意义
另外,我如何实现标识/安全项目,以便不需要向每个项目添加标识?(建筑是我真正需要帮助的地方)
基本上,我将如何使用asp.net Identity作为一个单独的项目来实现安全性?当我构建这样一个应用程序时,我通常使用依赖项注入,并且有一个定义我的服务的项目称之为核心(可能在您的案例数据中?)。在本项目中,我通常会创建一个ISecurityService接口,该接口定义获取登录用户所需的方法:
public interface ISecurityService {
string GetCurrentUserName();
}
您可能希望返回的不仅仅是字符串、对象等。。然后,在定义asp.net标识功能的asp.net项目中,我只需创建一个实现ISecurityService的AspnetSecurity服务,并将其连接到我的IOC/依赖项注入系统中。这样,任何需要获取此信息的类都可以请求对ISecurityService的引用,IOC系统将为它们提供注册的ASPNetSecurityService
或者,如果愿意,您可以使用相同的技术并将ASP.net放在单独的项目中,但是通过使用此DI技术,您可以在ASP.net mvc中保留标识内容,但仍然可以在任何您喜欢的地方使用该功能
这有帮助吗?今年我做了类似的事情,效果和我预期的一样。我有ASP.Net的身份作为它自己的一个项目。我的公司也对其进行了定制,以处理有关验证用户的所有业务逻辑/规则。我将其设置为一个NuGet包,并可以将其安装到任何web项目中,以处理对公共用户存储的身份验证。消费应用程序不需要知道任何有关身份验证的详细信息。开发人员只调用提供的方法
我开始的方式是从默认的MVC模板创建一个项目,并记下identity所需的所有依赖项。然后,我将这些依赖项包括在我的定制NuGet包中
您可以使用NuGet软件包资源管理器创建自己的NuGet软件包:
我检查了我的笔记,下面是我写下的所有需要添加到NuGet包中的依赖项(可能我忽略了一个):
- NuGet软件包:
- Net身份核心
- ASP.Net标识Owin
- ASP.Net标识实体框架
- Microsoft.Owin.Host.SystemWeb
- Microsoft.Owin.Security.Facebook
- Microsoft.Owin.Security.Google
- Microsoft.Owin.Security.MicrosoftAccount
- Microsoft.Owin.Security.Twitter
- 添加参考:
- 系统配置
- 系统.Web
- System.Web.Helpers
希望这有帮助