IUserMapper 可以用于更改用户详细信息吗
Can IUserMapper be used to Change User Details
在 Nancy FX 中,我如何使用 IUserMapper
(如果有的话)更改登录用户的帐户详细信息(姓名、电子邮件、密码)?
// registering is straight forward
Post["/register", true] = async(parameters, ct) =>
{
var user = this.BindAndValidate<UserRegistration>();
var response = await mapper.RegisterUser(user); // user is registered
...
}
// but how can I change a registered user's details?
Post["/profile", true] = async(parameters, ct) =>
{
this.RequiresAuthenticationAndLogOut();
var user = this.BindAndValidate<UserRegistration>();
var response = await mapper.?????(user);
...
}
您根本不会使用 IUserMapper
,这实际上仅用于身份验证目的,仅此而已。
当用户通过身份验证后,您就可以访问 UserName
属性。如果您将映射器设置为将用户的 ID 分配给用户名,那么您可以加载您的用户、修改和提交。
即:
Post["/profile", true] = async(parameters, ct) =>
{
this.RequiresAuthenticationAndLogOut();
var user = this.BindAndValidate<UserRegistration>();
var existingUser = await db.LoadAsync(int.Parse(CurrentUser.UserName));
existingUser.Name = user.Name;
...
return ...;
}
此外,永远不要保留从客户端绑定的对象。用户可能会提交您不希望他们提交的额外信息。
我也不知道你的IUserMapper
是从哪里得到的,因为在南希没有注册。
在 Nancy FX 中,我如何使用 IUserMapper
(如果有的话)更改登录用户的帐户详细信息(姓名、电子邮件、密码)?
// registering is straight forward
Post["/register", true] = async(parameters, ct) =>
{
var user = this.BindAndValidate<UserRegistration>();
var response = await mapper.RegisterUser(user); // user is registered
...
}
// but how can I change a registered user's details?
Post["/profile", true] = async(parameters, ct) =>
{
this.RequiresAuthenticationAndLogOut();
var user = this.BindAndValidate<UserRegistration>();
var response = await mapper.?????(user);
...
}
您根本不会使用 IUserMapper
,这实际上仅用于身份验证目的,仅此而已。
当用户通过身份验证后,您就可以访问 UserName
属性。如果您将映射器设置为将用户的 ID 分配给用户名,那么您可以加载您的用户、修改和提交。
即:
Post["/profile", true] = async(parameters, ct) =>
{
this.RequiresAuthenticationAndLogOut();
var user = this.BindAndValidate<UserRegistration>();
var existingUser = await db.LoadAsync(int.Parse(CurrentUser.UserName));
existingUser.Name = user.Name;
...
return ...;
}
此外,永远不要保留从客户端绑定的对象。用户可能会提交您不希望他们提交的额外信息。
我也不知道你的IUserMapper
是从哪里得到的,因为在南希没有注册。