2012-02-28 5 views
4

私はHtml.PasswordForに入力されていませんか?

@HTML.PasswordFor(m => m.Password) 

のかみそり式で、私はモデルから、私はそれは次のようにHTMLのプロパティで値を注入しています見つけた唯一の解決策を値を設定することはできません理由を理解しようとしている、私の多くの時間を費やしますこの

@HTML.PasswordFor(m => m.Password, new { value = Model.Password }) 

私は何か間違っているのですか?正しいヘルパーですか?これはフィールドモデルの設定です

[Required(ErrorMessage = "La contraseña es obligatoria.")] 
[StringLength(100, ErrorMessage = "El {0} debe tener al menos {2} caracteres de longitud.", MinimumLength = 6)] 
[DataType(DataType.Password)] 
[Display(Name = "Contraseña")] 
public string Password { get; set; } 

これは唯一の解決策ですか?

+4

この動作は仕様です。 HTTPリクエストでパスワードのダウンストリームを送信しない – SLaks

+2

これは、同じ電線でパスワードを受け取ったばかりのケースを考えると意味がありません。パスワードを傍受したいと思っている人は誰でも既に持っているので、それを電信線を介して送り返すことができないという利点はありません。貧しいデザインの選択肢。 –

+0

お客様の実装SSLを提供することは、安全であることを保証します。 **一方のブラウザは安全ではありません**。したがって、パスワードをマークアップに入れないことは理にかなっています。誰もあなたのパスワードを知っているべきではなく、管理者でなくてはなりません(彼らはすぐにハッシュされるべきです)。あなたは、最近のパスワードの違反が、この種のことを真剣に受け止めないのは悪い考えだと人々に伝えていると思います。 – Liam

答えて

2

セキュリティ機能です。この作業を行うには、a)プレーンテキストでユーザーのパスワードにアクセスでき、b)それをブラウザ経由でワイヤを介して送信していることを意味します。

どちらも安全ではなく、奨励されるべきではありません。

このように、これは問題ではなく、Razorの機能です。

+0

実際にはMVCエディタヘルパーの機能です。 – SLaks

関連する問題