在Identity 2.1.0中找不到signinmanager类

时间:2015-02-03 23:33:08

标签: c# asp.net-mvc asp.net-identity asp.net-identity-2

我刚刚更新了我的所有身份nuget包,以便我可以使用

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

但是VS无法找到它。它只找到SingInManager<>用intellisense。 没有SignInManager.PasswordSignInAsync(...)。我甚至对SignInManager进行了定义并查看了库中的源代码,它没有显示任何电子邮件参数的PasswordSignInAsync,jsut是用户名。我查看了文件顶部的版本,它显示了

  

region程序集Microsoft.AspNet.Identity.Owin.dll,v2.0.0.0

     

C:\ TFS \ GiftExchange \包\ Microsoft.AspNet.Identity.Owin.2.1.0 \ lib中\ net45 \ Microsoft.AspNet.Identity.Owin.dll

所以我知道我有正确的库吗?

enter image description here

甚至那似乎都被打破了。 我试图按照此处的代码

  

http://blogs.msdn.com/b/webdev/archive/2014/08/05/announcing-rtm-of-asp-net-identity-2-1-0.aspx

我已经更新了我的所有nuget软件包并检查了它们,所有这些软件包都下载了它们的依赖项。我错过了什么来获得SignInManager.PasswordSignInAsync?

1 个答案:

答案 0 :(得分:3)

您下载的软件包没有任何问题,实际上您无法以这种方式使用它。

首先创建继承ApplicationUserManager

UserManager<YourApplicationUser>

然后通过继承ApplicationSignInManager

创建SignInManager<YourApplicationUser, string>课程

然后您可以在代码下方使用passworSignIn

来获取owin上下文
public ApplicationSignInManager SignInManager
        {
            get
            {
                return _signInManager ?? HttpContext.GetOwinContext().Get<ApplicationSignInManager>();
            }
            private set 
            { 
                _signInManager = value; 
            }
        }

然后你可以打电话

var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false); 

使用个人帐户模板使用visual studio创建新项目,然后您可以轻松了解ApplicationUserManager和ApplicationSignInManager类。这两个类都可以在App_Start文件夹下的IdentityConfig.cs类中找到。