使用MySQL作为外部存储的ASP.NET标识:No SecurityStamp

时间:2017-03-14 16:04:52

标签: c# mysql asp.net asp.net-mvc asp.net-identity

我目前正在使用标准的“个人用户帐户”编写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);实例,确认该属性为nullenter image description here

由于我使用的是标准功能并且只更改了数据库,因此我不确定自己如何设置SecurityStamp。理想情况下,我更喜欢使用这种随机数的内置创建。关于如何解决这个问题的任何建议?

关于现有问题: 我知道有关SecurityStamp的现有问题通过明确设置SecurityStamp的随机/唯一值来解决。我想专门为MySQL解决这个案例,维护CreateAsync的默认行为,它已经提供了创建安全的SecurityStamp 的代码。

0 个答案:

没有答案