为了解决这个问题,可以采取以下措施:
阅读官方文档进行了解。
参考中文社区中关于ASP.NET Core SignInManager的源码解析文章,进行学习。
完整阅读英文代码,然后再结合英文注释和自身的理解进行中文改写。下面给出一个示例代码:
public class SignInManager : SignInManager where TUser : class
{
public SignInManager(UserManager userManager, IHttpContextAccessor contextAccessor, IUserClaimsPrincipalFactory claimsFactory, IOptions optionsAccessor, ILogger> logger)
: base(userManager, contextAccessor, claimsFactory, optionsAccessor, logger)
{
}
public override Task PasswordSignInAsync(string userName, string password, bool isPersistent, bool lockoutOnFailure)
{
return base.PasswordSignInAsync(userName, password, isPersistent, false);
}
}
public class SignInManager : SignInManager where TUser : class
{
public SignInManager(UserManager userManager, IHttpContextAccessor contextAccessor, IUserClaimsPrincipalFactory claimsFactory, IOptions optionsAccessor, ILogger> logger)
: base(userManager, contextAccessor, claimsFactory, optionsAccessor, logger)
{
}
public override Task PasswordSignInAsync(string userName, string password, bool isPersistent, bool lockoutOnFailure)
{
return base.PasswordSignInAsync(userName, password, isPersistent, false);
}
}
其中,将SignInManager类名改成“登陆管理器”,PasswordSignInAsync方法名改成“密码登陆异步”,UserName、Password、IsPersistent和LockoutOnFailure等参数名称也进行了中文翻译。这样修改后的代码,更加易懂,利于中文开发者学习理