Код: Выделить всё
`
Код: Выделить всё
[WebMethod]
public List GetWorsList(string prefixText)
{
List workNames = null;
if (Validations.ValidWorkNoAjax(prefixText) == false)
{
return workNames;
}
else
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("", con);
cmd.Parameters.Add("@prefixText", SqlDbType.VarChar, 500).Value = "%" + prefixText + "%";
/*Some Code*/
return workNames;
}
}
Код: Выделить всё
{
"prefixText": "WL",
"count": 20,
"is_admin": true,
"is_sso": true,
"role": "admin"
}
I искал по этому поводу и обнаружил, что мне следует
избегать использования функций, которые автоматически привязывают входные данные клиента к переменным кода или внутренним объектам. Если применимо, явно определите и примените схемы для полезных данных входных данных.
Чтобы добиться этого, я попробовал следующее:
Код: Выделить всё
public object GetWorsList(string prefixText)
{
var requestStrings = HttpContext.Current.Request.QueryString;
foreach (var item in requestStrings.AllKeys)
{
if (!item.Contains("prefixText") && !item.Contains("count"))
{
return BadRequest("Invalid Request");
}
}
}
Код: Выделить всё
http://localhost:6949/ewbms_bb/SearchWebService.asmx/GetWorsList
Отправленные мной полезные данные:
Код: Выделить всё
{
"prefixText": "WL",
"count": 20,
"is_admin": true,
"is_sso": true,
"role": "admin"
}
I также попробовал создать отдельный класс, например:
Код: Выделить всё
public class WorkSearchModel
{
public string prefixText { get; set; }
public int Count { get; set; }
}
После поиска в Интернете я обнаружил, что «API Массовое назначение» правильно обрабатывается в Asp.Net Core, но в проекте веб-формы/веб-сайта я не нашел такого результата. Пожалуйста, дайте рекомендации.
Подробнее здесь: https://stackoverflow.com/questions/780 ... -parameter