作为web开发人员,当您想要创建应用程序时,有很多语言和框架可供选择。最强大的框架之一是ASP.NET。ASP.NET非常适合使用HTML5、CSS3和JavaScript构建基于标准的web应用程序。它支持创建广泛的web应用程序的三种不同方式:
- ASP.NET WebForms: 使用控件和事件模型进行基于组件的开发。
- ASP.NET MVC: 使用流行和常用的模型-视图-控制器方法。
- ASP.NET网页: 这是一个混合了代码和HTML标记的单页模型。
ASP.NET Web API还可用于创建返回JSON XML或Web支持的任何类型的内容的丰富的REST-ful web服务。这些服务可用于向移动应用或任何其他应用提供数据。
在这篇文章中,我们将研究ASP.NET的身份和安全基础知识。这是一个相当大的话题,所以我们不仅会做一个后续的帖子,但我们也会包括进一步阅读的链接。
ASP.NET标识系统
ASP.NET的早期版本使用成员资格系统。ASP.NET成员资格系统已经显示出它的年龄有一段时间了。它基于以下原则: web应用程序的用户将在应用程序拥有的sql数据库中创建并存储其凭据。现代应用程序并不总是这样工作。实际上,随着社交网络的普及,许多用户希望使用社交凭证来访问其他应用。
“旧” 成员资格系统正在被ASP.NET身份系统取代,包括以下功能:
- 配置文件支持
- OAuth集成
- 欧文
ASP.NET标识提供程序已包含在Visual Studio 2013的ASP.NET模板中,并且可以通过NuGet包获得,因此可以在现有应用程序中轻松实现。
以前的成员资格系统是在SQL Server上构建的。当应用程序需要不同类型的后端数据存储来保存用户信息时,开发人员需要编写大量自定义代码。ASP.NET身份系统仍然可以基于SQL Server,但更容易插入不同的存储环境-如SharePoint,Azure存储或NoSQL。在会员系统中,作为开发人员,您需要投入一些。
System.NotImplementedException
这不再是必要的。
ASP.NET Identity system包含一个角色提供程序,您可以在其中创建 “student” 或 “admin” 等角色,并向这些角色添加用户。角色成员资格是一个布尔表达式。当您需要包含有关用户的更丰富的信息时,您需要使用基于声明的身份验证。使用声明,用户的身份信息被表示为一组声明。
要了解有关角色提供程序和基于声明的身份验证的更多信息,请查看以下资源之一:
社会认证
我们生活在一个世界里,用户经常有一个或多个社交登录,并希望使用其中一个来访问其他应用程序。ASP.NET Identity system包含可帮助开发人员创建社交登录的社交登录提供程序。使用社交登录提供程序,您可以使用Microsoft帐户,Twitter,Facebook,Google或任何其他社交登录系统,并将特定于用户的数据存储在应用程序数据存储中。
获取有关社交登录提供商的更多信息,请访问:
上面的社交登录提供程序是开箱即用的,但是社区中的一些人在使用它们时遇到了问题。有关更多信息以及解决这些问题的一些帮助,请参阅这篇关于StackOverflow的文章。
ASP.NET身份验证现在基于可以在任何基于OWIN的主机上使用的OWIN中间件。因此,ASP.NET Identity对System.Web没有任何依赖关系。它是一个完全兼容的OWIN框架,可以在任何OWIN托管的应用程序中使用。OWIN是之间的标准接口。NET web服务器和web应用程序。
了解更多关于OWIN在这里:
ASP.NET的新版本 (ASP.NET vNext或ASP.NET 5) 将完全基于OWIN。
一个强大的系统
ASP.NET Identity是一个功能强大的系统,可处理ASP.NET web应用程序中的身份验证和安全性的整个过程。Visual Studio ASP.NET模板已包含ASP.NET Identity系统的基础知识,因此只需几分钟即可为应用程序设置丰富的标识系统。请记住,ASP.NET标识框架将不断发展,所有ASP.NET标识相关信息的良好起点是ASP.NET 5网站上的博客文章。