Sử dụng bảo mật Owin, tôi đang cố gắng tạo API có 2 phương pháp xác thực.Xác thực quyền sở hữu - cách lấy địa chỉ IP của ứng dụng khách yêu cầu mã thông báo xác thực
Có một tài sản trong context
biến (OAuthGrantResourceOwnerCredentialsContext
) cho phép tôi truy cập vào địa chỉ IP của client gửi yêu cầu ban đầu cho một thẻ auth API?
Một dải cơ bản của phương pháp auth của tôi trông giống như vậy:
public override async Task GrantResourceOwnerCredentials(
OAuthGrantResourceOwnerCredentialsContext context)
{
await Task.Run(() =>
{
var remoteIpAddresss = context.Request.RemoteIpAddress;
var localIpAddress = context.Request.LocalIpAddress;
// ... authenticate process goes here (AddClaim, etc.)
}
}
Từ những gì tôi hiểu được remoteIpAddress
và localIpAddress
là của API (ví dụ: nơi mà các API được lưu trữ). Làm cách nào để biết được địa chỉ IP (và cổng) mà yêu cầu được gửi từ đâu?
Khách hàng có cần tự gửi thông tin này không?
Tôi có nên thêm thông số bổ sung vào đường dẫn xác thực không? (bên cạnh username
, password
, grant_type
) điển hình?
Tôi đã tự hỏi điều này quá vì vậy tôi thiết lập một dự án trên một máy ảo (với một IP khác nhau), đã gửi một yêu cầu đến nó từ máy chủ và bạn thực sự là chính xác. 'context.Request.RemoteIpAddress' cho thấy IP của máy khách yêu cầu mã thông báo và' context.Request.LocalIpAddress' hiển thị IP nơi API được lưu trữ. –