1

在开发环境中,我使用 Visual Studio 中的 ASP.NET 配置工具来创建一些用户进行测试。随着我更接近 QA 和生产,我想知道在应用程序部署后自动化创建大量(1000 个)用户的最佳方式是什么。

我有一个包含所有用户名和密码、角色等的 csv,我不想利用内置的加密和密码加盐安全性。我不想手动“注册”所有这些用户。我只是不确定这是否是我能做的(或指示数据库管理员为我执行)。

有谁知道实现这一目标的方法?

任何帮助将不胜感激。

问候

4

2 回答 2

3

The simplest solution would be to set up a "CSV Upload" form. The CSV would be processed by an MVC action calling Membership.CreateUser in a loop.

Probably, the performance of this will be good enough.

于 2012-08-27T11:47:26.030 回答
1

我知道有几种方法可以解决 ASP.NET 站点上的批处理问题。

由于 ASP.NET 站点的应用程序池可以被回收的方式很奇怪,批处理通常在外部进程上完成。

视窗服务

一种方法是单独的 Windows 服务,它获取新的 excel 并将数据输入,并有一个持续运行的计时器。我经常看到它被使用,这很痛苦,因为它需要额外的工作才能使其易于部署。 从 Windows 服务更新 ASP.Net 成员资格

缓存项

第二种方法是使用 CacheItems 及其过期计时器进行批处理,您所做的是定义一个带有长计时器的缓存对象,当该对象过期并调用 Removed-callback 时,您就可以完成数据库工作。这很好,因为它与您的 ASP.NET 站点一起部署,并且您将代码放在一个合乎逻辑的位置。 https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

工作流基础

第三种方式,是做一个工作流基础服务。该服务从您的 ASP.NET 站点收到一个调用,该站点实例化一个 WF 服务,该服务对您的 excel 文件执行一些 db 工作,然后它进入一个延迟一个月的 while 循环。这很好,因为它与 ASP.NET 应用程序池的生命周期无关——您可以获得更多控制权,并且此逻辑可以分离到不同的 IIS 托管 WCF 服务中。 http://msdn.microsoft.com/en-us/library/dd489452.aspx

但是,与数据集成总是很痛苦,请记住,在部署时为您提供最少工作和最少失败机会的解决方案是最佳解决方案。

于 2012-08-27T11:24:17.947 回答