遵循此问题,缺少方法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名称空间中定义方法。您可以在项目