【问题标题】:How to get an Owin UserManager如何获得 Owin 用户管理器
【发布时间】:2014-05-28 00:36:03
【问题描述】:

我想询问 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 块包装东西吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    这会让你的实例化语句更整洁:

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

    【讨论】:

    • 但是现在我再深入一点,我发现 UserManager 对象有一个 Dispose 方法。我应该将它包装在using 块中吗?就此而言,UserStore 也是一次性的……
    • 我个人不会这样做,而是使用 DI 框架。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 2017-07-25
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    相关资源
    最近更新 更多