Jun*_*ior 2 c# asp.net-mvc asp.net-identity
我正在使用ASP.NET MVC 5 / Entity 6 frameworke和代码优先方法在c#中构建应用程序。我正在尝试将Id身份2中的属性从更改string为integer。
我遵循的文档似乎很简单。
然后,我使用以下命令创建迁移
Add-Migration InitialCreate
Run Code Online (Sandbox Code Playgroud)
由于某种原因,迁移文件中不包含AspNet表。但是,然后我使用以下命令进行了迁移
Update-Database
Run Code Online (Sandbox Code Playgroud)
迁移没有问题,播种机运行良好。
但是,当我运行应用程序时
我收到以下错误
异常详细信息:System.FormatException:输入字符串的格式不正确。
该错误突出显示了Startup.Auth.cs文件下面的第38行。
Line 36: regenerateIdentityCallback: (manager, user) =>
Line 37: user.GenerateUserIdentityAsync(manager),
Line 38: getUserIdCallback: (id) => (id.GetUserId<int>()))
Run Code Online (Sandbox Code Playgroud)
如何解决此错误?
您需要删除cookie。一种快速的测试是使用其他浏览器(尚未安装Cookie的浏览器,可能使用IE或Edge)打开您的应用。
这是因为当您第一次浏览该站点时,会创建一个cookie(使用主键的字符串版本)。
当您将主键更改为int时,浏览器中的cookie仍在使用字符串版本,因此会Exception Details: System.FormatException: Input string was not in a correct format.出现错误。
我曾经被这个错误st住了,因此我记得要修复它,这是更多信息的链接:https : //github.com/TypecastException/AspNet-Identity-2-With-Integer-Keys/问题/ 2