dotnet核心SPA模板的身份验证

时间:2019-01-08 22:27:40

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

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

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

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

2 个答案:

答案 0 :(得分:0)

如果您正在使用NodeJs后端,则需要以在SPA框架(例如Angular,React)中实现身份验证/授权机制。您无法期待。

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

要点是,SPA本身就是单页应用程序,而ASP.Net(核心)进行基于控制器/操作的身份验证。 SPA通常只有一个开始(引导)页面。因此,它不能自行处理身份验证/授权,也不应

答案 1 :(得分:0)

在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用户名 {{ 1}} 您的SQL密码
    • ;pwd= 您的服务器名称 server= 您的数据库名称 ;database=

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

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

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