[英]Where is Microsoft.AspNet.Identity.Owin.AuthenticationManager in Asp.Net Identity RTM version?
我从这里安装了AspNet-identity组件的每晚构建
似乎RC版本的AuthenticationManager
类已从RTM版本( Microsoft.AspNet.Identity.Owin.1.0.0-rtm-130914 )中消失 。
它曾经在Microsoft.AspNet.Identity.Owin程序集中,但它不再存在。
此类具有以下方法: SignInAsync
和CheckPasswordAndSignInAsync
,用于在使用个人用户帐户身份验证创建新的ASP.Net Web应用程序MVC项目时获得的默认项目。
AuthenticationManager现在在哪里? 或者用什么代替?
该类已经消失,因为它基本上只是添加生成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);
}
如果我错了但没有将AuthenticationManager移动到,那么有人会纠正我
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,因此必须从对象实例触发。
除非我错过了什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.