Ef code first 为什么IsInRole总是返回false?
我正在使用ASP.NET Identity 2.0和EF 6.1.1构建一个MVC5应用程序 这是我当前登录方法的一部分:Ef code first 为什么IsInRole总是返回false?,ef-code-first,asp.net-identity,Ef Code First,Asp.net Identity,我正在使用ASP.NET Identity 2.0和EF 6.1.1构建一个MVC5应用程序 这是我当前登录方法的一部分: [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsV
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
return View(model);
var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: true);
switch (result)
{
case SignInStatus.Success:
{
var user = await UserManager.FindAsync(model.UserName, model.Password);
if (user == null)
break;
if (!UserManager.IsInRole(user.Id, "OfficeUser"))
break; // << I always hit this line - even if the user is an OfficeUser
[HttpPost]
[异名]
[ValidateAntiForgeryToken]
公共异步任务登录(LoginView模型,字符串返回URL)
{
如果(!ModelState.IsValid)
返回视图(模型);
var result=await-SignInManager.PasswordSignInAsync(model.UserName、model.Password、model.RememberMe、shouldllockout:true);
开关(结果)
{
案例标志状态成功:
{
var user=await UserManager.FindAsync(model.UserName,model.Password);
if(user==null)
打破
if(!UserManager.IsInRole(user.Id,“OfficeUser”))
break;//我遇到了同样的问题,然后我得到了如下的解决方法。原因似乎是,用户没有完全登录或完成此阶段的所有身份验证过程
case SignInStatus.Success:
{
var user = await UserManager.FindAsync(model.UserName, model.Password);
var roles = await UserManager.GetRolesAsync(user.Id)
if (user == null)
break;
if (roles.Contains("OfficeUser"))
break; // << I always hit this line - even if the user is an OfficeUser
案例标志状态成功:
{
var user=await UserManager.FindAsync(model.UserName,model.Password);
var roles=await UserManager.GetRolesAsync(user.Id)
if(user==null)
打破
if(roles.Contains(“OfficeUser”))
break;//我遇到了同样的问题,然后我得到了如下的解决方法。原因似乎是,用户没有完全登录或完成此阶段的所有身份验证过程
case SignInStatus.Success:
{
var user = await UserManager.FindAsync(model.UserName, model.Password);
var roles = await UserManager.GetRolesAsync(user.Id)
if (user == null)
break;
if (roles.Contains("OfficeUser"))
break; // << I always hit this line - even if the user is an OfficeUser
案例标志状态成功:
{
var user=await UserManager.FindAsync(model.UserName,model.Password);
var roles=await UserManager.GetRolesAsync(user.Id)
if(user==null)
打破
if(roles.Contains(“OfficeUser”))
break;//是的,这很有效。非常感谢,DSR!!你刚刚救了我一天(和周末:)是的,这很有效。非常感谢,DSR!!你刚刚救了我一天(和周末:)