微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Web 窗体中使用新密码验证器为 ASP.NET 身份设置种子的正确方法

如何解决在 Web 窗体中使用新密码验证器为 ASP.NET 身份设置种子的正确方法

最近,我开始改进现有的 Web 表单项目,将其转换为实体框架和 ASP.NET Identity。我实现了 2 个独立的数据库

  1. 项目专用
  2. ASP.NET 身份标识

对于该项目,我在 Global.ascx 文件中对其进行了初始化。

W = 'Hello world python variables coding

它已经成功地工作了。所以我在 ASP.NET Identity 中尝试了同样的方法。首先,我在 IdentityConfig.cs 中定义了种子方法

public class Global : HttpApplication
{
    void Application_Start(object sender,EventArgs e)
    {
        // Code that runs on application startup
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);


        Database.Setinitializer(new FYPInitializer());
        using (var db = new FYPContext())
        {   
            db.Database.Initialize(true);
        }
    }
}

}

最后一行是问题的根源,它们违反了ApplicationuserManager中的一些规则,这是我从UserManager继承的一个类。

public override void InitializeDatabase(ApplicationDbContext context)
        {
            context.Database.ExecutesqlCommand(TransactionalBehavior.DoNotEnsureTransaction,string.Format("ALTER DATABASE [{0}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE",context.Database.Connection.Database));

            base.InitializeDatabase(context);
        }

        protected override void Seed(ApplicationDbContext context)
        {
            var usermanager = new ApplicationUserManager(new UserStore<ApplicationUser>(context));
            //usermanager.PasswordValidator = new MinimumLengthValidator(3);

            var RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
        usermanager.Create(new ApplicationUser("cafarella" ),"123");//@@@Cafarella123

如您所见,有一个静态方法返回一个已配置的应用程序用户管理器。但是,它接受只有在被 CreatePerOwinContext 调用时才有意义的 OWIN 对象。所以这是我的问题

  1. 我很想从这个静态方法获取 applicationusermanager,因为我只能操作文件中的规则。但是,它需要我不熟悉的 OWIN 对象。此外,我不能在 IdentityConfig.cs 文件中执行类似 Context.GetowinContext().GetUserManager() 的操作。那么,我应该这样做吗?如果是,如何生成这些 OWIN 对象?如果不是,我是否应该创建一个应用程序用户管理器并添加一些规则?
  2. 播种身份数据库的最佳做法是什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。