gpt4 book ai didi

asp.net-mvc - 输入不是有效的 Base64 字符串,因为它包含非 Base 64 字符 ASP.NET 标识

转载 作者:行者123 更新时间:2023-12-02 04:01:07 24 4
gpt4 key购买 nike

我使用 asp.net 身份进行登录和身份验证。使用以下方法登录时出现密码字段错误

model=是用户实体

var user = await UserManager.FindAsync(model.UserName, model.Password);
if (user != null)
{
bool isPersistent = false;
await SignInAsync(user, isPersistent);
return RedirectToLocal(returnUrl);
}

输入不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符或填充字符中包含非法字符

最佳答案

你用的是EF吗?如果是这样,您不应在 edmx 上添加 AspNetRoles、AspNetUserClaims、AspNetUserLogins 和 AspNetUserRoles。

此外,我总是使用如下所示的“登录”方法。如果我需要保留一些信息(如 userRole、userName 等),我会使用如下所示的 Session。

public async Task<ActionResult> Login(LoginViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}

// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var user = await UserManager.FindAsync(model.Email, model.Password);
//var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
if (user != null)
{
string userRole = UserManager.GetRoles(user.Id).FirstOrDefault();
Session["userRole"] = userRole;
Session["userName"] = model.Email;
await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", "Invalid username or password");
return View(model);
}
}

所以你可以尝试

await SignInManager.PasswordSignInAsync

await SignInManager.SignInAsync

关于asp.net-mvc - 输入不是有效的 Base64 字符串,因为它包含非 Base 64 字符 ASP.NET 标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22982262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com