AuthenticationManager参考缺失



遵循此问题,缺少方法SignOut()SignIn()的引用:

private async Task SignInAsync(User user, bool isPersistent)
{
    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
    var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
    AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}

有人知道如何解决吗?

您是如何定义 authenticationManager 属性的?通常看起来应该如下:

private IAuthenticationManager AuthenticationManager
{
  get
  {
    return HttpContext.GetOwinContext().Authentication;
  }
}

您应该能够调用签名 signin 方法。

如果您在控制器外呼叫,则应按以下方式定义AuthenticationManager。

    private IAuthenticationManager AuthenticationManager
    {
        get
        {
            return HttpContext.Current.GetOwinContext().Authentication;
        }
    }

getOwinContext()是一种扩展方法,它存在于microsoft.owin.host.systemweb.dll中。

您必须添加Microsoft.owin.host.systemweb nuget软件包。

它是系统的一部分。Web名称空间。因此,请确保您将System.Web包括在使用部分中。

您可能已包含System.Net而不是Microsoft.Owin.Security。两者都有AuthenticationManager类的定义。

应在microsoft.owin.security名称空间中定义方法。您可以在项目

中正确引用Microsoft.owin dll。

相关内容

  • 没有找到相关文章

最新更新