【问题标题】:Authentication for dotnet core SPA templatedotnet core SPA 模板的身份验证
【发布时间】:2019-01-08 22:27:39
【问题描述】:

我正在使用 ASP.Net Core SPA 模板来创建单页应用程序。这些模板没有选择身份验证选项的选项。

我想将应用配置为使用 OpenId Connect 身份验证(通过 AzureAd 和其他提供商)。我想避免使用 Js 库进行身份验证。这可能吗?

我尝试在创建项目后手动添加身份验证部分,但这似乎不起作用。

【问题讨论】:

  • 你在使用角度吗?反应?
  • 我是开放的。我可以使用任何东西。不确定这是否重要。

标签: asp.net-core .net-core


【解决方案1】:

在 Core2x 中,这有点工作,但你可以做到。

在 Core3 中就这么简单

dotnet new react --auth Individual --use-local-db

--use-local-db 参数使用 SQL Server 而不是 SQLite 作为身份数据库。默认情况下,它将使用 localdb 并在 Web 根目录中创建一个数据库。这不太可能是你想要的,所以

  • 在 SQL Server 上创建一个空白数据库
  • 更新appsettings.json 中的连接字符串以指向它
    • server=你的服务器名;database=你的数据库名;uid=你的 SQL 用户名;pwd=你的 SQL 密码时间>
    • server=您的服务器名称;database=您的数据库名称;Integrated Security=True

有人对连接字符串中的 uid 和 pwd 不满意吗?现在是您解释如何将集成安全性与 Azure SQL 数据库结合使用的机会。

无论如何,这会产生一个功能完整的用户体验,用于创建和管理身份。您可以将多个身份与单个帐户相关联,甚至可以支持多个 ADFS 提供程序。

MVC 和 SPA 之间的过渡是无缝的。到目前为止,我遇到的唯一问题是弄清楚如何自定义或设置预制 UX 的样式。

【讨论】:

    【解决方案2】:

    如果您使用 NodeJs 后端,您需要在 SPA 框架(例如 Angular、React)中实现您的身份验证/授权机制。你不能指望别的。

    如果您的 API 在同一个 SPA 应用程序上,您可以只为您的后端 API 实施身份验证/授权。但是对于前端,你不能依赖它。

    主要的一点是,SPA 是单页应用程序,而 ASP.Net (Core) 使基于控制器/动作的身份验证。 SPA 通常只有一个起始(引导)页面。因此,它不能自己处理身份验证/授权,也不应该

    【讨论】:

    • 我的问题是,我可以让应用程序在身份验证结束后像单页应用程序一样运行吗?例如,一个 ASP.Net Core 应用程序处理身份验证,然后返回发送一个开始实际 SPA 初始化的页面。我想答案是否定的。
    猜你喜欢
    • 1970-01-01
    • 2018-01-28
    • 2020-02-01
    • 2018-05-30
    • 2013-10-28
    • 2018-04-05
    • 2018-02-04
    • 1970-01-01
    • 2018-05-28
    相关资源
    最近更新 更多