Ef code first 为什么IsInRole总是返回false?

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

我正在使用ASP.NET Identity 2.0和EF 6.1.1构建一个MVC5应用程序

这是我当前登录方法的一部分:

    [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!!你刚刚救了我一天(和周末:)