[英]How to use postman or http request to pass a user
我有一個 asp.net 核心項目,我的一個字段是通過 User?.Identity?.Name 設置的。 我想知道是否有辦法通過 http 請求傳遞身份,而不是登錄網站。 我已經問了很多,但似乎沒有人這樣做,盡管考慮到 web 是無狀態的,這對我來說是有可能的。 任何見解都會很有趣。 謝謝!
這里有很多未知數,因為您的問題實際上並不具體。 一般來說,身份驗證通常由以下兩種主要方式之一處理:cookie 或Authorization
header。
基於 Cookie 的身份驗證是 web 身份驗證的更傳統形式。 您使用用戶名和密碼在登錄頁面上提交表單,服務器接收該請求並通過驗證憑據來處理它,如果正確,則通過Set-Cookie
響應 header 使用加密的身份驗證票設置一個 cookie。 在每個后續請求中,瀏覽器通過Cookie
請求 header 將此 cookie 發送回服務器,解密並驗證身份驗證票證,如果仍然有效,則“恢復”經過身份驗證的 session:即識別經過身份驗證的用戶。
API 通常會通過Authorization
請求 header 進行身份驗證。 客戶端通常首先使用一組憑據向身份驗證端點發送請求。 這可能是用戶名/密碼,也可能是客戶端 ID/密碼對等。服務器再次驗證憑據,如果有效,則返回包含令牌的響應。 然后,該令牌與客戶端想要通過Authorization
header 發出的實際請求一起發送,例如Authorization: Bearer {token}
。 還有其他 forms header 可以使用。 例如,您可以改用基本身份驗證,而不是訪問身份驗證端點,首先,您只需將用戶名和密碼作為 Base64 編碼字符串傳遞,例如Authorization: Basic {base64-encoded user:pass}
。
總而言之,是的,總是發送一些東西來“授權”它,無論是cookie還是Authorization
header。 但是,您發送的內容及其處理方式是 function,說明應用程序如何設置處理身份驗證,您在這里沒有詳細說明。 您不能只發送帶有基本身份驗證的Authorization
header,例如,如果您的應用程序沒有明確設置為知道它需要查找它並且實際上知道如何處理它。
如果您使用基於 cookie 的身份驗證方法,則可以通過將 HTML 表單的相同數據傳遞給相同的 URL 以相同的方式( x-www-form-urlencoded
)來模擬提交表單。 響應將是用戶轉到的任何頁面的 HTML,但 cookie 將位於Set-Cookie
處理程序中。 您可以捕獲它,然后將其發送到您請求的Cookie
header 中。 您可以通過 Postman 之類的方法完成所有這些操作,但無論哪種方式,您仍然必須通過身份驗證過程來 go。
如果您處理的是 API,那么您應該使用其他形式的身份驗證:基本、不記名等。但是,您需要再次進行實際設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.