Microsoft.AspNet.Identity.Owin.AuthenticationManager 在 Asp.N



我已经从这里安装了AspNet-identity程序集的夜间构建

RC版本中的AuthenticationManager类似乎从RTM版本(Microsoft.AspNet.Identity.Owin.1.0.0-rtm-130914)中消失了。

它曾经在Microsoft.AspNet.Identity.Owin程序集中,但现在不在那里了。

此类具有以下方法:SignInAsyncCheckPasswordAndSignInAsync,这些方法在创建具有个人用户帐户身份验证的新 ASP.Net Web 应用程序 MVC 项目时获得的默认项目中使用。

身份验证管理器现在在哪里?或者用什么代替?

该类已经消失了,因为它基本上只是添加生成ClaimsIdentity并将其传递给Owin.Security.IAuthenticationManager的方法。

相反,RTM 模板在控制器中有一个 SignIn 方法,如下所示:

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

如果我错了,一定会有人纠正我,但身份验证管理器没有被移动到

HttpContext.Current.GetOwinContext().Authentication

所以上面的例子现在这样:

private async Task SignInAsync(UserManager<User> manager, User user, bool isPersistent)
{
    var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
    authenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
    var identity = await manager.CreateIdentityAsync(user, DeffaultAuthenticationTypes.ApplicationCookie);
    authenticationManager.SignIn(new AuthenticationProperties(){ IsPersistent = isPersistent }, identity);
}

请注意,UserManager似乎不再具有静态方法CreateIdentityAsync,因此必须从对象实例中触发此方法。

除非我错过了什么?

相关内容

  • 没有找到相关文章