我目前正在使用标准的“个人用户帐户”编写ASP.NET MVC应用程序进行身份验证。我已将默认存储从本地.mdf文件更改为遵循相同模式的MySQL数据库。
一切正常,UserManager.CreateAsync(user, model.Password);
按预期将新用户写入MySQL数据库。唯一缺少的字段(因此DB中的NULL
)是SecurityStamp
。不知何故,MySQL的使用阻止了ASP.NET身份功能成功写入列。
我已经以.mdf文件的形式仔细研究了本地存储,但似乎并不是通过任何类型的触发器或函数在数据库本身上创建SecurityStamp
。
在调用user
后调试并观察UserManager.CreateAsync(user, model.Password);
实例,确认该属性为null
:
由于我使用的是标准功能并且只更改了数据库,因此我不确定自己如何设置SecurityStamp
。理想情况下,我更喜欢使用这种随机数的内置创建。关于如何解决这个问题的任何建议?
关于现有问题:
我知道有关SecurityStamp
的现有问题通过明确设置SecurityStamp的随机/唯一值来解决。我想专门为MySQL解决这个案例,维护CreateAsync的默认行为,它已经提供了创建安全的SecurityStamp 的代码。