2015-01-07 4 views
5

ASP.Identity 2.0の "GenerateEmailConfirmationToken/GenerateEmailConfirmationTokenAsync"メソッドに関する2つの質問があります。GenerateEmailConfirmationToken()は正確に何をしていますか?

// Generate token 
var token = Url.Encode(await UserManager.GenerateEmailConfirmationTokenAsync(user.Id)); 
  1. データベースに格納されているこのトークンですか?私はそれがすべきだと思います。しかし、どのフィールドですか?私は、Userテーブル上で "PasswordHash"と "SecurityStamp"を見つけるだけです。どちらも一致していないようです。
  2. 電子メールトークンを生成すると、UserテーブルのEmailConfirmedフィールドがfalseに設定されるという印象を受けました。しかしそれは真実のままです。したがって、対応するユーザーアカウントが確認されたままの場合、トークンを作成する目的は何ですか?言い換えれば、新しいトークンを生成するために何をする必要がありますか?
+1

この回答を参照してください:http://stackoverflow.com/a/27137659/809357 – trailmax

+0

そして、この1つ:http://stackoverflow.com/a/27677587/809357 – trailmax

+0

可能な複製[セキュリティトークンとセキュリティASP.NET IDのスタンプ?](http://stackoverflow.com/questions/27677345/what-are-a-security-token-and-security-stamp-in-asp-net-identity) – trailmax

答えて

2

コメントで議論を要約すると:トークンはどこにも保存されません - SecruityStampから(世代の正確なプロセスについて正確にわからない)彼らは暗号生成され、彼らが戻って来ているとき、彼らは非暗号化されたことができ、比較した。

EmailConfirmedについては、これはあなたが維持し、見守るためのものです。確認済みのメールがないユーザーの場合は、手動でログインを拒否する必要があります。電子メールの確認が来たらフラグを設定する必要があります。

+0

ありがとう、trailmax :) – Ingmar