0

ASP.NET MVC3で遊んでいて、単純なサインアップ'フォーム'を実行しようとしています。さて、キッカーは私がそれを2つのステップを持つウィザードにしようとしているということです。

  1. Facebook / Twitter / YourFavOpenIdプロバイダーで認証します。
  2. 不足しているデータ(メールアドレスや名前など)を入力します。

ステップ1は100%うまく機能します:)だから心配しないでください。ステップ2は私が質問をするところです。

だから質問に:-

  1. ビューは強く型付けされています。モデルはポコUSERです。ICollection<string>OpenIdがあります。Razerビューに最初のものだけを表示したいと思います。(これはステップ1で設定されました)。

例えば。

<div class="editor-label">
    <label for="Identifier">Identifier</label>
</div>
<div class="editor-field">
    @Html.LabelFor(x => x.OpenIds.FirstOrDefault())
</div>

しかし、それは私に次の邪悪なエラーを与えます:-

テンプレートは、フィールドアクセス、プロパティアクセス、単一次元配列インデックス、または単一パラメーターのカスタムインデクサー式でのみ使用できます。

第二に、私が考慮すべきセキュリティの実装があるかどうかはわかりません..これはSignUpいくつかの点でウィザードであるため-ユーザーがステップ2(つまり)に直接ジャンプしHTTP-GET /authentication/newてOpenIdを提供していない可能性はありませんIDまたはいずれか1つを提供します..しかし、最初のステップ(ユーザーをOpenId Webサイトに送り、再びここに戻る)をスキップしたため、認証を回避しました。このタイプのハッキングから保護するには、どのような手順を実行する必要がありますか?ステップ1またはステップ2のどちらでも属性を使用できません。これ[Authorize]は、ステップ2の最後にあるためHTTP-POST /authentication/createです(つまり)FormsAuthentication.SignIn(..)

ふぅ!それは理にかなっていますか?

乾杯 :)

4

1 に答える 1

2
  1. LabelFor<label>通常の要素を提供することを目的としています<input>
    ここでは使用しないでください。
    代わりに、通常のHTMLタグを使用する必要があります。

  2. 実際にOpenIDを取得したかどうかを確認してください。

于 2011-02-28T13:50:25.283 に答える