是否可以在asp.net CORE中将用户ID转换为int?

时间:2018-03-10 22:04:54

标签: c# asp.net-core

将用户ID更改为int将帮助我添加编辑用户页面以便能够编辑用户信息等,但我在应用程序中遇到其他功能的问题,因为他们使用字符串作为Id而不是int。这是我已经尝试过的:

public class ApplicationUser : IdentityUser<int>

public class ApplicationRole : IdentityRole<int>

public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int>

按照这个完整的Here

这样可行,但它会扰乱应用程序中的帐户和管理控制器,特别是这些行:

var callbackUrl = Url.ResetPasswordCallbackLink(user.Id, code, Request.Scheme);

var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);

var info = await _signInManager.GetExternalLoginInfoAsync(user.Id);

这些错误表明它们无法从字符串转换为int,这是可以理解的。这是否意味着无法将Id从字符串转换为int?

1 个答案:

答案 0 :(得分:0)

  1. 检查method definitionGetExternalLoginInfoAsync (string expectedXsrf = null)并不期望用户ID作为参数。它获取当前登录的外部登录信息。

  2. 关于ResetPasswordCallbackLinkEmailConfirmationLink方法 - 您只需执行user.Id.ToString()