【问题标题】:Add identity to existing aurelia .net core project将身份添加到现有 aurelia .net 核心项目
【发布时间】:2018-12-19 02:49:37
【问题描述】:

我已按照本指南 https://github.com/aspnet/JavaScriptServices 创建了一个 asp .net core 2 aurelia 项目。

但我想为这个项目添加身份,但我找不到一个好的指南如何做到这一点......

有谁做过这个或知道我可以从哪里开始?

最好的问候 安德烈亚斯

【问题讨论】:

  • 我读过一些关于 Identity as UI

标签: c# asp.net-core aurelia identity


【解决方案1】:

编辑: 因为我觉得这个问题需要更多解释,所以我写了一个blog post 和一个sample on GitHub


根据您想在兔子洞中走多远,您可以:

  1. 在 Aurelia 中重新实现整个 ASP.NET Core Identity UI。
  2. 在 MVC 中有默认的 Identity 实现。
  3. 介于两者之间,例如仅在 Aurelia 中实现登录,在 MVC 中实现其余(注册、忘记密码、管理等)。

对于我的大多数项目,我只需使用 Identity 创建一个新的 ASP.NET Core MVC 应用程序,然后将 Aurelia 添加到它(在同一个或单独的项目中)。安全性很难,很容易搞砸。如果您保留默认的身份实现,您可以通过默认路由 (/home/index) 为 Aurelia 应用程序提供服务,并在控制器或操作方法上具有 [Authorize] 属性以要求用户在访问之前登录。

有一次我在考虑 #1,创建一个示例应用程序(甚至是 .NET Core 模板),在 Aurelia 中重新实现整个 Identity UI 并在博客中介绍它,但当然,时间是一个问题,并且我从来没有开始过。

所以,我的建议是选择#2。

如果您使用的是 ASP.NET Core 2.1(并且您真的应该升级到它,因为 2.0 的生命周期即将结束 a few months),有一些身份更改可能会对您有所帮助。 2.1 中的 Identity 实现为 a separate Razor Class Library,这是 ASP.NET Core 2.1 中的一个新特性。

您可以在the documentation 中找到有关如何将 Identity 构建到现有 ASP.NET Core 项目的更多详细信息。

【讨论】:

  • 谢谢!我会检查一下。我有 targetframework = netcoreapp2.0 所以我想我可能会先将项目更新到 2.1。
  • <body> @RenderBody() @RenderSection("scripts", required: false) </body> 我的 _Layout.cshtml 页面中有这样的内容。但我希望您必须先登录才能访问该网站。我怎样才能做到这一点? @MiroslavPopovic
  • @AndreasPettersson 如果您在 Startup 类中启用了身份验证中间件并配置了身份,只需在您的控制器或为 Aurelia 应用程序提供服务的操作方法上添加 [Authorize] 属性即可。它将未经身份验证的用户重定向到身份登录页面。检查其工作原理的最佳方法是创建一个启用了身份的新 ASP.NET Core MVC 应用程序(个人用户帐户)。
  • 好的,谢谢。我只希望您可以登录,而不是创建帐户。但是在登录页面上有一个按钮,您可以注册一个新帐户。但我没有找到视图,所以我无法更改,所以按钮消失了。您说您已将 aurelia 添加到现有项目中,您对此有很好的教程吗?如果我使用个人用户帐户创建一个新的 asp .net core 2.1 项目,然后将 aurelia 添加到该项目中。
  • 嘿@AndreasPettersson,我已经更新了答案,其中包含指向我的博客文章的链接和 GitHub 上的示例代码。我希望它会有所帮助。
猜你喜欢
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2019-05-11
  • 2020-02-06
相关资源
最近更新 更多