如何获得Owin UserManager

时间:2014-05-28 00:36:03

标签: asp.net-mvc asp.net-mvc-4 asp.net-identity asp.net-identity-2

如果用户存在,我想问Owin。把我在网上找到的随机内容放在一起,我最终得到了这个(完全未经测试的代码):

/// <summary> Returns true if the TestUser user exists in the membership database. </summary>
public static bool UserExists(ApplicationDbContext db, string username)
{
    var userManager = new Microsoft.AspNet.Identity.UserManager<ApplicationUser>(
        new Microsoft.AspNet.Identity.EntityFramework.UserStore<ApplicationUser>(db));

    var user = userManager.FindByName(username);
    return (user != null);
}

我的问题是,我真的需要那个冗长,丑陋的表达来获得一个新的UserManager吗?或者是否有更好,更有效,更清洁或更正确的方法来做到这一点?

现在我更仔细地看一下,我发现UserManager和UserStore都是一次性的。我想在using块中包装吗?

1 个答案:

答案 0 :(得分:0)

它与创建大多数对象相同,但在这种情况下,我会添加一些using语句来简化它:

using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;

这将使您的实例化声明更加整洁:

var userManager = new UserManager<ApplicationUser>(
    new UserStore<ApplicationUser>(db));