如何使用邮递员或http请求传递用户

时间:2020-04-16 16:43:51

标签: c# http asp.net-core postman

我有一个asp.net核心项目,我的一个字段是通过User?.Identity?.Name设置的。我想知道是否有一种方法可以通过http请求传递身份,而不是登录到站点。我问了很多问题,似乎没有人这样做,尽管对我来说有意义的是,鉴于网络是无状态的,这是有可能的。任何见解都将是有趣的。谢谢!

2 个答案:

答案 0 :(得分:1)

这取决于您使用什么Auth服务,如果您在.net core上使用 OAuth 2.0 ,则需要登录以发送UsernamePassword之类的参数http请求,然后为其他http请求获取访问令牌,因此邮递员可以选择以下选项: enter image description here

答案 1 :(得分:1)

这里有许多未知数,因为您的问题并不是真的。一般来说,auth通常通过以下两种原理之一进行处理:cookie或Authorization头。

基于Cookie的身份验证是Web身份验证的更传统形式。您在登录页面上使用用户名和密码提交表单,服务器接收该请求并通过验证凭据进行处理,如果正确,则通过带有加密身份验证票证的Set-Cookie响应标头设置cookie。在随后的每个请求中,浏览器都会通过Cookie请求标头将此cookie发送回服务器,解密并验证身份验证票证,如果仍然有效,则“恢复”已身份验证的会话:即识别已身份验证的用户。

API通常通常会通过Authorization请求标头进行身份验证。客户端通常首先会使用一组凭据将请求发送到身份验证端点。这可以是用户名/密码,也可以是客户端ID /秘密对,等等。服务器再次验证凭据,如果有效,则返回包含令牌的响应。然后,该令牌与客户想要通过Authorization标头(如Authorization: Bearer {token})发出的实际请求一起发送。标头可以采用其他形式。例如,您可以改用基本身份验证,而不是使用auth端点,首先,您只需将用户名和密码作为Base64编码的字符串(如Authorization: Basic {base64-encoded user:pass})进行传递。

总之,总之,无论是cookie还是Authorization头,总是随请求一起发送一些东西以“授权”它。但是,您发送的内容及其处理方式是该应用程序如何设置以处理身份验证的功能,这里没有详细说明。例如,如果您的应用没有明确设置为知道需要查找并真正知道如何处理,则不能仅通过基本身份验证发送Authorization头。

如果您使用的是基于cookie的身份验证方法,则可以通过以相同的方式将HTML表单将传递给相同URL的相同数据(x-www-form-urlencoded)来模仿提交表单。响应将是用户进入的任何页面的HTML,但是cookie将在Set-Cookie处理程序中。您可以捕获它,然后将其发送到请求的Cookie标头中。您可以通过Postman之类的方式完成所有这些操作,但是无论哪种方式,您都仍然必须经历身份验证过程。

如果要处理API,则应该使用其他形式的auth:基本身份验证,承载等。但是,再次,您需要进行实际设置。

相关问题