我有一个托管JavaScript客户端应用程序的ASP.NET Core MVC服务器应用程序。 JS应用程序当前使用带有隐式流的Oidc auth。 MVC服务器应用程序提供文件下载功能,并且还需要对用户进行身份验证。
当用户登录JS客户端并单击引用MVC服务器后端的下载链接并且服务器应该接受已经过身份验证的用户时,是否有方法或示例如何配置两个应用程序以支持方案?
此外,如果用户尚未通过身份验证并在浏览器中导航到下载URL,则MVC后端应将其重定向到身份服务器登录页面,然后再继续下载。
我尝试了几种配置,但两个客户端都是独立运行的,首次登录后,MVC服务器并不反映一个浏览器会话中的JS客户端用户切换。
答案 0 :(得分:1)
在MVC应用程序中,将其配置为使用IdentityServer中间件(例如Startup.Configure中的app.UseIdentityServerAuthentication
)以及AllowedScopes
,Authority
等的相应设置。
然后使用Authorize
属性修饰您的控制器操作,并确保从前端到后端的所有调用都正确地将Authorization
标头设置为持票人令牌(这是您前面的访问令牌) - 通过成功登录获得的。)