我使用內置模板進行身份驗證的ASP .NET MVC。對於某些自定義角色,我將新註冊用戶代碼複製到另一頁上,並按以下方式存儲在數據庫中。錯誤:輸入包含非基本64字符,超過兩個填充字符
public void adduser(AdduserModel role){
ApplicationUser appUser = new ApplicationUser() { Email = role.Email, PasswordHash = role.Password, UserName = role.Email, EmailConfirmed = true };
var manager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
var response = manager.Create(appUser);
}
而且在模板的AccountController看起來像下面
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
var user = await UserManager.FindByNameAsync(model.Email);
// Session["UserName"] = model.Email;
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
}
兩者都存儲密碼和密碼,電子郵件等,但mycode的是採用明文存儲和模板代碼存儲在加密格式通。
當我嘗試登錄時,模板註冊用戶正常執行並登錄,但我的代碼給我下面的錯誤。
The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or a non-white space character among the padding characters.
我該如何解決這個問題?
您是否嘗試設置已認證用戶的角色,然後使用類似[Authorize(Roles =「Admin」)]來裝飾該操作? – LKC
是的,我嘗試過,但不能。可能有些事情是錯的。你能簡單地解釋一下嗎? –
如果您不想使用內置身份驗證和授權的asp.net模板,那麼您可以關注自定義角色和身份驗證的文章很少。http://www.dotnettricks.com/learn/mvc/custom-authentication -and-authorization-in-aspnet-mvc https://www.codeproject.com/Articles/578374/AplusBeginner-splusTutorialplusonplusCustomplusF – LKC