Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在与Web API通信的ASP.NET核心MVC应用程序中使用自定义身份验证/授权?_C#_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

C# 如何在与Web API通信的ASP.NET核心MVC应用程序中使用自定义身份验证/授权?

C# 如何在与Web API通信的ASP.NET核心MVC应用程序中使用自定义身份验证/授权?,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,我想在MVC/Razor页面应用程序中使用身份验证/授权,该应用程序使用后端API来处理数据和身份验证令牌。API为有效登录发布访问和刷新JWT,到目前为止,我所做的是调用API,使用HttpClient获取这些令牌,然后将它们存储在cookie中 但是,我必须手动检查令牌,在访问令牌过期时刷新它,并且在用户注销时删除cookie。我想知道是否有一种更合适的方法来使用此功能,即利用ASP.NET Core的身份验证和授权功能(例如使用[Authorize]将某些控制器的权限限制为特定用户。签出,

我想在MVC/Razor页面应用程序中使用身份验证/授权,该应用程序使用后端API来处理数据和身份验证令牌。API为有效登录发布访问和刷新JWT,到目前为止,我所做的是调用API,使用HttpClient获取这些令牌,然后将它们存储在cookie中

但是,我必须手动检查令牌,在访问令牌过期时刷新它,并且在用户注销时删除cookie。我想知道是否有一种更合适的方法来使用此功能,即利用ASP.NET Core的身份验证和授权功能(例如使用[Authorize]将某些控制器的权限限制为特定用户。

签出,即身份验证(使用OpenIdConnect)和授权服务器(使用OAuth)

然后,在您的WebApp(MVC/Razor和API的客户端)中,只需使用其集成即可。有关如何将ASP.NET MVC设置为Identity Server实例的客户端的示例,请参见Identity Server的官方网站


对于刷新令牌,您需要配置您的MVC应用程序以请求
脱机访问
范围。

您是否需要每个用户的访问令牌,还是共享访问?用户身份验证是本地进行还是远程进行?内置一体机有何问题?IdentityServer是一个不错的选择,但不进行授权。I我指的是,t确实可以授权应用程序访问其他地方的资源。