Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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应用程序、Web API和;移动应用_C#_.net_Api_Oauth 2.0_Asp.net Core Webapi - Fatal编程技术网

C# Web应用程序、Web API和;移动应用

C# Web应用程序、Web API和;移动应用,c#,.net,api,oauth-2.0,asp.net-core-webapi,C#,.net,Api,Oauth 2.0,Asp.net Core Webapi,我需要这三个应用程序(web、api、mobile)之间的身份验证建议 用例 我有.Net核心Web API,它与基本身份验证(即。 标题中的用户名和密码) 我需要在我的.Net核心Web应用程序和Xamarin移动应用程序中使用该API 我想在这三个应用程序之间集成安全模型 问题陈述 我不知道相同的身份验证如何适用于Web应用程序和API 我不想使用任何第三方身份验证提供商。我会的 希望我的用户只在数据库中 保护API的最佳方法是什么 一旦我保护了我的Web API,如何在Web应用程序

我需要这三个应用程序(web、api、mobile)之间的身份验证建议

用例

  • 我有.Net核心Web API,它与基本身份验证(即。 标题中的用户名和密码)
  • 我需要在我的.Net核心Web应用程序和Xamarin移动应用程序中使用该API
  • 我想在这三个应用程序之间集成安全模型
问题陈述

  • 我不知道相同的身份验证如何适用于Web应用程序和API
  • 我不想使用任何第三方身份验证提供商。我会的 希望我的用户只在数据库中
  • 保护API的最佳方法是什么
  • 一旦我保护了我的Web API,如何在Web应用程序上进行身份验证& 移动应用程序
我知道这是一个广泛的问题,但最简单的答案/方式将帮助我决定进一步的道路。我对身份验证有足够的了解,比如AD、OAuth、OpenConnect、JWT,但老实说,我不知道如何在我的场景中使用它


谢谢。

一个简单的方法是让API与JWT一起工作,并连接到保存用户信息的数据库。您将拥有一个接收用户名和密码并返回令牌的路由。对于所有经过身份验证的路由,请求在头上都需要此令牌。对于客户端(Web App和Xamarin),您可以将收到的令牌存储为cookie,并在每次API调用时一起发送。

谢谢。但最终用户可以轻松地从cookie中获取令牌,并可以向API发送单独的请求。如果用户有令牌,则表示用户已成功通过身份验证,这意味着您的用户可以查看API中的数据。如果您不想让用户看到所有内容,那么现在是权限问题,而不是身份验证问题。如果您担心有人嗅到饼干,请使用SSL。同意,谢谢!首先,我将实现这个逻辑。为了更好的安全性,您能建议更安全的方法吗?为了增强安全性,您可以在cookie上指定一个过期日期。一段时间后(比如1小时),用户必须再次提供凭据。如果令牌被破坏(不太可能使用SSL),它可以减轻损害。对于web应用,使用cookie方式,对于移动应用,使用令牌如何?有什么主要区别吗?