ASP.NET 身份认证推荐资源
本主题提供了有关如何使用 ASP.NET 标识的文档资源的链接。
如果你知道一篇出色的博客文章、stackoverflow 线程或任何其他有用的链接,请[发送电子邮件给我们](aspnetue@microsoft.com?subject=Identity 推荐资源),附上该链接,或者直接在此页面底部留言。
- ASP.NET 标识入门
- 新精选必读文章
- 中级 ASP.NET 标识
- 视频
- 在何处提问、请求功能、报告 bug 和夜间版本
- 有关标识的博客文章
- 用于 ASP.NET 身份验证的自定义存储提供程序
- 其他标识资源
- 问答(问/答)
ASP.NET 标识入门
- 使用 Facebook、Twitter、LinkedIn 和 Google OAuth2 登录 MVC 5 应用 本教程介绍如何使用 Facebook 和 Google OAuth 2 授权编写 ASP.NET MVC 5 应用。 它还演示如何向标识数据库添加其他数据。
- 将成员身份、OAuth 和 SQL 数据库的安全 ASP.NET MVC 应用部署到 Azure。 本教程将添加 Azure 部署、如何使用角色保护应用、如何使用成员身份 API 添加用户和角色以及其他安全功能。
- ASP.NET 标识简介
- 使用登录、电子邮件确认和密码重置 创建安全 ASP.NET MVC 5 Web 应用
- 具有 SMS 和电子邮件双因素身份验证的 ASP.NET MVC 5 应用
新增特色必读文章
- 演练:ASP.NET MVC 标识与 Microsoft 帐户身份验证 作者:Benjamin Day
- ASP.NET 标识 2.0 扩展标识模型并使用整数键而不是字符串
- 使用 ASP.NET Web API 2、Owin 和 Identity 的 AngularJS 令牌身份验证
- 使用 Thinktecture.IdentityManager 替换 WSAT
- ASP.NET 标识 2.0:自定义用户和角色
中级 ASP.NET 标识
- ASP.NET Identity 中的帐户确认和密码恢复
- 使用短信和电子邮件搭配 ASP.NET Identity 实施双因素身份验证
- 将现有网站从 SQL 成员身份迁移到 ASP.NET 标识
- 向空或现有 Web 窗体项目添加 ASP.NET 标识
- MSDN 杂志 外部身份验证与 ASP.NET 标识 作者 Dino Esposito
- MSDN 杂志ASP.NET 标识初探 作者:Dino Esposito
- ASP.NET 标识 - 用户锁定
在何处提问、请求功能、报告 bug 和夜间版本
- 对于 StackOverflow,请使用标记 aspnet-identity
- 对于 ASP.NET 论坛,请发布到 安全论坛,并向标题添加 ASP.NET 标识。
- GitHub 上的 ASP.NET 标识 获取夜间版本、请求功能、提交 bug。
有关标识的博客文章
作者:John Atten
作者:Anders Abel
作者:K. Scott Allen 主题:要编码的 Ode
- ASP.NET Core 标识 此博客介绍核心抽象,包括 IUser、IUserStore 和 I*Store 接口。
- ASP.NET 标识与实体框架 MVC 5、Web API 和 SPA 应用、连接字符串和管理上下文中的个人用户帐户
- 使用 ASP.NET 标识的自定义选项
- 实现 ASP.NET 标识
-
- 使用 OWIN/Katana 身份验证中间件的外部登录提供程序(社交登录)入门
- IdentityReboot 简介:ASP.NET 标识的一组扩展,用于实现我抱怨过的主要缺失功能。
@beabigrockstar (杰里·佩尔瑟)
Google OpenId 集成问题与 ASP.NET 标识 如果收到错误:HTTP 错误 404.15 – 未找到 请求筛选模块被配置为拒绝查询字符串过长的请求
视频
- 第 9 频道 保护 ASP.NET 应用程序和服务:新式应用程序的安全升级 作者:Ido Flatow
- 第 9 频道 ASP.NET 标识简介 作者:Pranav Rastogi
- 第 9 频道 使用 ASP.NET 标识进行 ASP.NET 身份验证 作者:Cory Fowler
- 第 9 频道 生成现代 Web 应用:ASP.NET 标识 作者:Jeff Koch
- 第 9 频道 使用 ASP.NET 标识保护网站 作者:Alex Thissen
- 在现有 DB 模型上使用 ASP.NET 标识 作者:Alexander Schmidt
- ASP.NET One 标识 :作者:Telerik 的 Ivaylo Kenov
- 捷克 ASP.NET 标识 在本讲座中,我们将介绍如何部署基本身份验证、如何添加对外部标识提供者(如 Twitter 或 Facebook)的支持,以及如何使用一次性密码(OTP)。 [ASP.NET Identity je nástupce Membership a Role providerů v ASP.NET, tedy knihovna pro zajištění autentizace uživatelů. V této přednášce si ukážeme, jak nasad]
ASP.NET 标识的自定义存储提供程序
如果要编写自己的提供程序,请阅读 ASP.NET 标识的自定义存储提供程序概述和实现 ASP.NET 标识,然后检查下面列出的其中一个 OSS 项目的源代码。
- 教程:ASP.NET 标识的自定义存储提供程序概述 作者:Tom FitzMacken
- 博客:实现 ASP.NET 标识
- 教程:设置基本身份账户,并将其指向外部数据库。 作者:@xivSolutions。
- 教程:实现自定义 MySQL ASP.NET 标识存储提供程序
- Azure 表存储 作者:James Randall。
- Azure 表存储:AspNet.Identity.TableStorage 作者:@stuartleeks。
- 丹尼尔·韦特海姆的CouchDB / Cloudant。
- Elasticsearch: Elastic Identity 由 Bombsquad AB 出品。
- MongoDB 作者:Jonathan Sheely Jonathan Sheely。
- NHibernate.AspNet.Identity 作者:Antônio Milesi Bastos。
- RavenDB 作者:@tourismgeek。
- RavenDB.AspNet.Identity 作者:ILMServices。
- Redis:Redis.AspNet.Identity
- 用于为“数据库优先”用户存储区生成 EF 代码的 T4 模板:AspNet.Identity.EntityFramework
其他 ASP.NET 标识资源
- 适用于 OWIN 的 Yahoo 和 LinkedIn OAuth 安全提供程序简介 作者:Jerrie Pelser 主题:Yahoo 和 LinkedIn 指令。
Q&A (问题/答案)
- 问:启用“记住我”(因此他们不必在该计算机/浏览器上完成 2FA)的已锁定用户实际上未被锁定。为什么会这样?如何防止出现这种情况? 在此处回答。
- Q:如何在 ASP.NET 标识 cookie 中存储自定义声明(例如用户的实名),以避免对每个请求进行不必要的数据库查询。 在此处回答。
- 问:更新 AspNetUser 密码哈希:我有 2 个项目。 其中一个是使用 ASP.NET 身份验证,另一个使用 Windows 身份验证,即管理端。 我希望管理员项目能够管理其他项目的用户。 我可以修改除密码以外的所有内容。 在此处回答。
- 问:作为管理员,如何为其他用户重置密码? 在此处回答。
- 问:是否可以在 ASP.NET MVC IdentityUser 中更改 UserName 字段的显示名称? 在此处回答。
- 问:如何赋予用户权限,以便将其他用户添加到某些角色中? 在此处回答。
- 问:在 AspNetUsers 表与 AspNetUserClaims 表中存储配置文件信息。 在此处回答。
- 问:使用外部身份验证提供程序时记住我。 在此处回答。
- 问:为什么每个请求都需要 `ApplicationDBContext`,这样不是太耗费资源吗? 答案,否,开销较低。
- 问:如何获取已登录用户的列表? 在此处回答。
- 问:如何检测用户何时使用 Microsoft.AspNet.Identity 登录? 在此处回答。
- 问:如何获取标识的本地化错误消息? 在此处回答。
- 问:如何配置 CookieMiddleware,以便每 30 分钟获取一次新的声明? 在此处回答。
- 问:登录后如何修改用户的声明? 在此处回答。
- 问:如何使安全令牌失效? 在此处回答。
- 问:如何在 Cookie 中间件中存储声明? 在此处回答。
- 问:我想对 MVC 应用中的每个操作方法进行 PIN 或安全检查,但我想存储用户成功,这样他们就不必在对该操作方法的每个请求上输入 PIN。 在此处回答。
- 问:我想将返回的电子邮件地址从社交提供程序保存到 DB,如何执行此操作? 在此处回答:
- 问:如何检测用户何时使用/注销“记住我”Cookie 登录? 在此处回答。
- 问:在调用 SignIn 后,是否可以使用 OWIN 修改 ASP.NET 标识中的声明? 答:调用 SignIn 正是你想要修改用户的声明时应执行的操作。 这会导致 ClaimsIdentity 被序列化到 Cookie 中,这就是为什么你会在后续请求中看到新的声明。