文字列を返す_mvc api
_に1つのメソッドを作成しました。しかし、string
を返す代わりに、_Json Object
_を返したいと思います。これが私のコードです。
_ [AllowAnonymous]
[HttpPost]
[Route("resetpassword")]
public IHttpActionResult ResetPassword(string email)
{
CreateUserAppService();
string newPassword =_userAppService.ResetPassword(email);
string subject = "Reset password";
string body = @"We have processed your request for password reset.<br/><br/>";
string from = ConfigurationManager.AppSettings[Common.Constants.FromEmailDisplayNameKey];
body = string.Format(body, newPassword, from);
SendEmail(email, subject, body, string.Empty);
return Ok<string>(newPassword);
}
_
ここではOk<string>(newPassword);
を返します。次に_Json object
_を返します。 Jsonオブジェクトを返すにはどうすればよいですか?
それを試してください:
[AllowAnonymous]
[HttpPost]
[Route("resetpassword")]
public IHttpActionResult ResetPassword(string email)
{
//...
return Json(newPassword);
}
あなたは実際にすでに重要なものを使用しています...
[HttpGet]
public IHttpActionResult Test()
{
return Ok(new {Password = "1234"});
}
これをCLRオブジェクトとして返す必要があるため、Web APIがJSONにシリアル化します。独自のPOCOクラスを作成するか、次のように実行できます。
var passResponse = new
{
newPassword= yourNewPassword
};
しかし、セキュリティの観点から、あなたがやっていることは正しくありません[〜#〜] never [〜#〜]プレーンパスワードをメールで送信する必要があります。リセットメールリンクを提供してユーザーパスワードをリセットする必要がありますトークンを使用してポータルにアクセスすると、新しいパスワードを入力する必要があります。ここで行っていることは安全ではありません。
戻りオブジェクトを作成します。
_public class PasswordResponse{
public string Password {get;set;}
//...other stuff to pass...
}
_
次に、応答でタイプのインスタンスを返します。
return OK(new PasswordResponse(){Password = newPassword});