- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个 Web Api 方法,该方法应该接受 JSON 对象和简单类型。但所有参数始终为null
。
我的 json 看起来像
{
"oldCredentials" : {
"UserName" : "user",
"PasswordHash" : "myCHqkiIAnybMPLzz3pg+GLQ8kM=",
"Nonce" : "/SeVX599/KjPX/J+JvX3/xE/44g=",
"Language" : null,
"SaveCredentials" : false
},
"newPassword" : "asdf"}
我的代码如下:
[HttpPut("UpdatePassword")]
[Route("WebServices/UsersService.svc/rest/users/user")]
public void UpdatePassword([FromBody]LoginData oldCredentials, [FromBody]string newPassword)
{
NonceService.ValidateNonce(oldCredentials.Nonce);
var users = UserStore.Load();
var theUser = GetUser(oldCredentials.UserName, users);
if (!UserStore.AuthenticateUser(oldCredentials, theUser))
{
FailIncorrectPassword();
}
var iv = Encoder.GetRandomNumber(16);
theUser.EncryptedPassword = Encoder.Encrypt(newPassword, iv);
theUser.InitializationVektor = iv;
UserStore.Save(users);
}
最佳答案
您当前发送的 JSON 映射到以下类
public class LoginData {
public string UserName { get; set; }
public string PasswordHash { get; set; }
public string Nonce { get; set; }
public string Language { get; set; }
public bool SaveCredentials { get; set; }
}
public class UpdateModel {
public LoginData oldCredentials { get; set; }
public string newPassword { get; set; }
}
[FromBody] 只能在操作参数中使用一次
[HttpPut("WebServices/UsersService.svc/rest/users/user")]
public void UpdatePassword([FromBody]UpdateModel model) {
LoginData oldCredentials = model.oldCredentials;
string newPassword = model.newPassword;
NonceService.ValidateNonce(oldCredentials.Nonce);
var users = UserStore.Load();
var theUser = GetUser(oldCredentials.UserName, users);
if (!UserStore.AuthenticateUser(oldCredentials, theUser)) {
FailIncorrectPassword();
}
var iv = Encoder.GetRandomNumber(16);
theUser.EncryptedPassword = Encoder.Encrypt(newPassword, iv);
theUser.InitializationVektor = iv;
UserStore.Save(users);
}
关于c# - 使用 FromBody 在 WebAPI 中建模的 JSON 对象和简单类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43365791/
这是基本设置,我有一个 asp.net core webapi Controller (在 C# 中),具有如下的 post 函数: [HttpPost] public ActionResult Po
这是基本设置,我有一个 asp.net 核心 webapi Controller (在 c# 中),带有一个像这样的 post 函数: [HttpPost] public ActionResult P
这是 Asp.Net Webform 应用程序 这是我的 Apicontroller 中的 POST 方法 public void Post([FromBody]string value) { } 我
这可能是非常基本的东西,但我无法弄清楚我哪里出错了。 我试图从 POST 正文中获取字符串,但“jsonString”仅显示为 null。我也想避免使用模型,但也许这是不可能的。我用 PostMan
在 Web API (2) 中使用属性路由时,我希望能够自动将路由参数从 URL 获取到模型参数中。这样做的原因是我的验证是在它到达操作之前在过滤器中执行的,如果没有它,附加信息就不容易获得。 考虑以
我收到了这样的请求。 POST /API/Event?EventID=15&UserID=1&Severity=5&DeptID=1&FlowTag=CE HTTP/1.1 Content-Type:
在 ASP.NET Core(本例中为 2.1)的 Controller 中使用 [FromBody] 时,它会处理所有到指定模型的转换并确保模型有效。这意味着如果提供的输入格式错误, Control
我正在尝试传递一个包含不同数据类型的对象。我总是在 Web API 中获取 orderDetails 的空值。 但是如果这样做, purchaseOrder.Attachments = null, 然
我有一个使用 ASP.NET Core 构建的新 API,但我无法将任何数据发布到端点。 这是端点的样子: [HttpPost] [Route("StudentResults")] public as
有没有[FromBody]属性的作用?我的意思是,当我使用它时: public async Task SetUser([FromBody]User 用户) 当我使用时: public async Ta
我似乎遇到了一个有趣的 Web API 问题 - 使用这个 Controller 操作,在左大括号上设置断点来检查 thing: [HttpPut] public void Test([FromBod
这个问题在这里已经有了答案: Web api attribute routing, by content type, in dot net core 2? (1 个回答) 关闭 4 年前。 客户端可
RESTful 设计更喜欢 URL 或 [FromBody] 中的数据吗? 假设我有一个 Controller 方法: [Route("ServiceActivity({serviceActivity
我有一个应该是非常基本的场景......我觉得我之前已经做过 100 次但由于某种原因它决定不工作并将我的时间浪费在一些琐碎的事情上...... 我正在使用带有属性路由的 WebAPI(喜欢它们)。
您好,我想通过我在 Web API Controller 中的 body 变量从 C# 客户端调用 Web Api 方法一直为空。如何正确设置? 客户端: IFileService imgServic
我在 web api 中有一个新方法 [HttpPost] public ApiResponse PushMessage( [FromUri] string x, [FromUri] string y
我有一个类似于 ASP.NET MVC 4 RC Web API Parameter Binding Issue 的问题,但我正在尝试使用 [FromBody] 属性来解决它。 Fiddler 报告以
我的 body 参数始终为 null 时遇到问题。这是 Controller : [HttpPost] public async void Assign([FromUri] int[]
我可以将我的数据发送到服务器,但只有当我使用 FromBody-Attribute 时。 为什么没有使用 Post 自动从 Body 中读取 json 数据? 后端网页接口(interface) [H
当我尝试发送请求“http://localhost:1234/api/case/create?signature=123456”时来自 Postman(谷歌扩展)在正文请求中使用“表单数据”,我收到错
我是一名优秀的程序员,十分优秀!