当前位置: 首页 > 编程语言 > C#

如何在C#WEBAPI中返回JSONWebToken?Share

时间:2023-04-10 14:00:43 C#

如何在C#WEBAPI中返回JSONWebToken?我正在尝试使用JWT来保护用C#编写的WEBAPI,但我在做一些事情。据我了解,流程应该是这样的:客户端从某些客户端应用程序(Angular、.NET、Mobile等)向WebAPI提供用户名/密码。WebAPI验证用户名/密码是否正确,然后生成JWT(JSONWebToken)以获取角色、信息、到期日期和其他相关信息。JWT被发送回客户端应用程序。客户端应用程序挂在JWT上并将其与未来的请求一起发送。假设以上是正确的(如果不正确请告诉我),我无法理解以下内容。一旦WebAPI验证了用户名/密码并创建了JWT,JWT如何传回?我是否以某种方式将它添加到HttpResponseMessage对象?我似乎无法找到一个明确的答案。客户端应用程序应该如何传递JWT?这是添加到附加到URL的JSON数据中的标头的内容吗?我看到很多教程都提到了OWIN和OAUTH。这些是什么,为什么我需要它们?我将用户凭证和角色保存在WEBAPI使用的数据库中。一旦WebAPI验证了用户名/密码并创建了JWT,JWT如何传回?我是否以某种方式将它添加到HttpResponseMessage对象?通常的做法是,在成功时,来自服务的响应在响应标头中有状态代码200OK,在响应文本中有令牌相关数据200OKContent-Type:application/json;charset=UTF-8{"access_token":"NgCXRK...MzYjw","token_type":"Bearer","expires_at":1372700873,"refresh_token":"NgAagA...Um_SHo"}客户端应用应该如何传递JWT?这是添加到附加到URL的JSON数据中的标头的内容吗?使用访问令牌发出经过身份验证的请求现在您拥有令牌,您可以向API发出经过身份验证的请求。这可以通过在请求中设置HTTP授权标头或查询字符串来完成,具体取决于服务器的配置方式。在标头Authorization:BearerNgCXRK...MzYjw作为参数GEThttp://localhost:35979/v2/endpoint?access_token=NgCXRK...MzYjw我看到很多教程都提到了OWIN和OAUTH。这些是什么,为什么我需要它们?OWIN–.NET的开放式Web接口http://owin.org/OWIN定义了.NETWeb服务器和Web应用程序之间的标准接口。OWIN接口的目标是分离服务器和应用程序,鼓励开发用于.NETWeb开发的简单模块,并通过开放标准激发.NETWeb开发工具的开源生态系统。OWINOAuth2.0授权服务器OAuth2.0框架使第三方应用程序能够获得对HTTP服务的有限访问权限。客户端不是使用资源所有者的凭据来访问受保护的资源,而是获取访问令牌(表示特定范围、生命周期和其他访问属性的字符串)。授权服务器在资源所有者的批准下向第三方客户端颁发访问令牌。以上就是C#学习教程:HowtoreturnJSONWebTokeninC#WEBAPI?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: