Asp.net mvc IdentityServer4:在ASP.NET核心MVC服务器应用程序和JavaScript客户端之间共享身份验证

Asp.net mvc IdentityServer4:在ASP.NET核心MVC服务器应用程序和JavaScript客户端之间共享身份验证,asp.net-mvc,identityserver4,Asp.net Mvc,Identityserver4,我有一个ASP.NET核心MVC服务器应用程序,托管一个JavaScript客户端应用程序。JS应用程序当前使用带隐式流的Oidc auth。MVC服务器应用程序提供文件下载功能,还需要对用户进行身份验证 当用户登录JS客户端并单击引用MVC服务器后端的下载链接时,服务器应该接受已经通过身份验证的用户,是否有一种方法或示例来配置这两个应用程序以支持该场景 此外,如果用户尚未通过身份验证并在浏览器中导航到下载URL,则MVC后端应在继续下载之前将其重定向到identity server登录页面 我

我有一个ASP.NET核心MVC服务器应用程序,托管一个JavaScript客户端应用程序。JS应用程序当前使用带隐式流的Oidc auth。MVC服务器应用程序提供文件下载功能,还需要对用户进行身份验证

当用户登录JS客户端并单击引用MVC服务器后端的下载链接时,服务器应该接受已经通过身份验证的用户,是否有一种方法或示例来配置这两个应用程序以支持该场景

此外,如果用户尚未通过身份验证并在浏览器中导航到下载URL,则MVC后端应在继续下载之前将其重定向到identity server登录页面


我尝试了几种配置,但两个客户端都独立运行,并且在首次登录后,MVC服务器不会在一个浏览器会话中反映JS客户端用户切换。

在MVC应用程序中,将其配置为使用IdentityServer中间件(例如启动中的
app.useIdentityServer Authentication
)对
允许范围
权限
等进行适当设置

然后用
Authorize
属性修饰控制器操作,并确保从前端到后端的所有调用都正确地将
Authorization
头设置为承载令牌(这是您的前端通过成功登录获得的访问令牌)