[解決済み] 新しい ASP.NET MVC 6 の ID の AspNetUsers テーブルの ConcurrencyStamp カラムの目的は何ですか?
2023-07-05 03:55:45
質問
の目的は何ですか?
ConcurrencyStamp
のカラムは何のためにあるのですか?
AspNetUsers
テーブルのカラムを、新しい ASP.NET MVC 6 の ID で使用できますか?
これは、データベーススキーマの
AspNetUsers
テーブルのデータベーススキーマです。
また
AspNetRoles
テーブルにもあります。
確かASP.NET MVC 5のIDでは無かったと思います。
今のところ気づいたのは、以下のコードで定義されているので、GUID値を持っているようです。
/// <summary>
/// A random value that must change whenever a user is persisted to the store
/// </summary>
public virtual string ConcurrencyStamp { get; set; } = Guid.NewGuid().ToString();
しかし、このドキュメントでは、どのような状況で使用されるのかを理解するのに十分ではありません。
どのように解決するのですか?
名前の通り、並行更新の衝突を防ぐために使用します。
例えば
UserA
という名前の Peter がデータベースにあります。
2 人の管理者が
UserA
の編集者ページを開き、このユーザーを更新したいと思います。
-
Admin_1
ページを開くと、Peter というユーザーが表示されました。 -
Admin_2
はページを開き、ピーターと呼ばれるユーザーを見ました (明らかに)。 -
Admin_1
はユーザー名をTomに更新し、データを保存します。現在UserA
という名前のDBに、Tomという名前で -
Admin_2
はユーザー名をThomasに更新し、保存を試みます。
ConcurrencyStampがない場合、Admin_1の更新はAdmin_2の更新に上書きされます。
しかし、私たちは
ConcurrencyStamp
があるため
Admin_1
/
Admin_2
がページを読み込むと、スタンプが読み込まれます。データを更新すると、このスタンプも変更されます。
つまり、ステップ 5 では、システムから例外がスローされ、Admin_2 に、このユーザーはすでに更新されている、なぜなら彼は
ConcurrencyStamp
が読み込まれたものとは異なるため、このユーザーはすでに更新されています。
関連
-
[解決済み] glyphicons-halflings-regular.woff2 not foundに関するエラーを削除する方法
-
[解決済み] JsonResultが特殊文字(apostrophe)を \u0027 としてパースしています。
-
[解決済み] 既存のASP.NET MVC 4 WebアプリケーションのプロジェクトにWeb APIを追加するにはどうすればよいですか?
-
[解決済み] [Solved] ASP.NET MVC 5 - Identity. 現在のApplicationUserを取得する方法
-
[解決済み】Scope_Identity()、Identity()、@Identity、Ident_Current()の違いは何ですか?)
-
[解決済み】リポジトリとサービスレイヤーの違い?
-
[解決済み】ASP .NET Identityにおけるクレームとは?
-
[解決済み】MVC4 DataType.Date EditorForがChromeで日付の値を表示しない、Internet Explorerでは問題なし。
-
[解決済み] HTMLヘルパーでURLを生成する
-
[解決済み] ASP.NET MVC 1でHttpContextBaseからHttpContextオブジェクトを取得するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] データベースに 'AspNetRoles' という名前のオブジェクトがすでに存在します。
-
[解決済み] Entity Framework Code Firstを使用して一意制約を設定することは可能ですか?
-
[解決済み] System.Web.HttpException (0x80004005)。リクエストの最大長を超えました
-
[解決済み] ELMAHをASP.NET MVCの[HandleError]属性で動作させる方法は?
-
[解決済み】ASP.NET MVC 3 razor ViewStart ファイルで異なるレイアウトを指定するには?
-
[解決済み] ASP.NET MVCでリクエストスロットルを実装するための最良の方法は?
-
[解決済み】"JSONリクエストが大きすぎてデシリアライズできませんでした "の表示について
-
[解決済み】HTTPエラー500.19とエラーコード: 0x80070021
-
[解決済み] X-SourceFilesヘッダーは何をするものですか?
-
[解決済み] ASP.NET MVC: UrlHelperを使用するコントローラのユニットテスト