Как я могу добавить новый параметр в тело, а не давать заголовок В аутентификации токена C#
Я хочу дать этому deviceid в качестве параметра в теле, а не в заголовке ? Как я могу прочитать новый параметр в качестве типа запроса тела
Что я уже пробовал:
try { string deviceId = ""; var request = context.Request; if (request.Headers.ContainsKey("deviceID")) { deviceId = request.Headers.Get("deviceID"); } tblUserLogin entry = obj.tblUserLogins.Where<tbluserlogin> (record => record.UserName == context.UserName && record.Password == context.Password).FirstOrDefault(); var res = (from c in obj.tblUserLogins where c.UserName == context.UserName && c.Password == context.Password select c ).FirstOrDefault(); if (res != null) { var result = (from device in obj.tbl_VCA_Device where device.FKUserLogin == res.PKUserLogin && device.DeviceID == deviceId select device ).FirstOrDefault(); if (result == null) { context.SetError("invalid_grant", "Device is not found"); return; } } else { context.SetError("invalid_grant", "The user name or password is incorrect."); return; } }
Afzaal Ahmad Zeeshan
Затем загрузите его в тело запроса. Вы не показали код, который используете для отправить запрос.
Скорее всего, вы можете отправить объект во время отправки запроса — httpClient.PostAsync(data)
где данные будут содержать идентификатор.
На сервере вы бы обработали тип запроса, а затем прочитали его тело — вместо того, чтобы читать его в коллекции заголовков.
Sruthi Jk
Owin не содержит определения для PostAsync
David_Wimbley
Вы не дали достаточно информации (как мы должны знать, что вы используете OWIN для того, что вы делаете?), но кажется, что код, который вы опубликовали, может означать, что вы написали пользовательский атрибут аутентификации?
Если это так, то вы не должны использовать идентификатор устройства как часть заголовка auth и просто включать все, что вам нужно сделать с идентификатором устройства, как часть самой конечной точки API.
Если вам нужен идентификатор устройства как часть вашей аутентификации, чем без дополнительной информации, вы, вероятно, застряли, используя идентификатор устройства как часть вашего атрибута аутентификации/передавая его через заголовок.
Sruthi Jk
да, я застрял, используя deviceid в заголовке.Я хотел бы добавить новый параметр из таблицы deviceId в тело .OAuthGrantResourceOwnerCredentialscontext содержит имя пользователя и пароль .Возможно ли это
David_Wimbley
Я могу быть сбит с толку, но если вы добавили идентификатор устройства в заголовок и больше не хотите его использовать, чем не используете...я не вижу, в чем проблема. Если он вам нужен в другом месте, то измените свой код, чтобы реализовать решение, которое позволяет удалить его из заголовка auth и передать через тело запроса post
У меня нет доступа к вашему компьютеру или коду, так что вам придется попробовать.
Sruthi Jk
Сэр, можете ли вы поделиться какой-либо ссылкой для добавления параметра в тело в аутентификации toke