将用户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?
答案 0 :(得分:0)
检查method definition。 GetExternalLoginInfoAsync (string expectedXsrf = null)
并不期望用户ID作为参数。它获取当前登录的外部登录信息。
关于ResetPasswordCallbackLink
和EmailConfirmationLink
方法 - 您只需执行user.Id.ToString()
。