【问题标题】:ASP.NET - with multiple sites sharing the same database, how can I manage the username a password?ASP.NET - 多个站点共享同一个数据库,如何管理用户名和密码?
【发布时间】:2012-04-27 15:13:43
【问题描述】:

我有多个网站和一个 Windows 应用程序共享同一个数据库。有没有办法可以跨所有 web.configs 和 app.configs 管理数据库用户名和密码?我希望能够更改用户名和密码,然后让所有网站和应用程序使用新名称。有什么我可以使用的东西可以自动化吗?我目前将用户名和密码存储在连接字符串中。

【问题讨论】:

  • 可能是的,但除非您需要经常更新所有这些连接字符串(这听起来像是某种糟糕的设计),否则手动更新几个应用程序会更快更容易而不是写一些东西继续制作新的配置文件。
  • 我们有一个核心网站,然后我们可以安装任意数量的使用相同数据库的网站。我不希望我们的 IT 部门为每个安装的站点手动配置每个 web.config。

标签: asp.net database web-config app-config user-management


【解决方案1】:

您可能必须在您的 Windows 应用程序中编写一些自定义代码来支持它,但 ASP.NET 成员资格允许您在多个应用程序之间共享用户名和密码。

http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx

ASP.NET 成员支持以下设施:

创建新用户和密码。

存储会员信息(用户名、密码和支持 数据)在 Microsoft SQL Server、Active Directory 或替代方案中 数据存储。

对访问您网站的用户进行身份验证。您可以对用户进行身份验证 以编程方式,或者您可以使用 ASP.NET 登录控件来创建 一个完整的身份验证系统,只需要很少或不需要代码。

管理密码,包括创建、更改和重置密码 他们 。根据您选择的会员选项,会员 系统还可以提供一个自动密码重置系统,该系统需要 用户提供的问题和回答。

为经过身份验证的用户公开唯一标识,您可以 在您自己的应用程序中使用并且还与 ASP.NET 集成 个性化和角色管理(授权)系统。

指定一个自定义成员资格提供程序,它允许您 替换您自己的代码来管理会员资格和维护会员资格 自定义数据存储中的数据

另外,请参阅this SO question 了解更多信息。

【讨论】:

  • 但这只是为了Web应用程序的数据库访问,而不是应用程序用户管理。这是连接到 sql 数据库的用户。
  • 不是为了连接数据库,是为了用户登录网站。而且它都是基于 SQL 的,所以没有什么可以阻止您在 WinForms 应用程序中调用相同的存储过程。
  • 或者您的意思是您的问题是如何维护用户及其与数据库的连接?如果是这样,我误解了。
【解决方案2】:
  • 将用户名和密码保存在注册表中。
  • 使用类即时构建连接字符串
  • 所有网站和应用程序都应具有相同的类

顺便说一句,注册表比网络配置更安全。

【讨论】:

  • 这是一个有趣的方法,只要我能加密密码。但是我还需要一个工具来更改用户名和密码。
  • 如何使用 Windows 身份验证访问数据库?不能设置web.config和app.config使用经过认证的用户,然后密码管理是基于可以访问机器的用户吗?
  • 这样,我就不用加密任何东西了。听起来有道理吗?
  • Windows 身份验证更加简单。您在 Web 配置中包含身份验证方法,并且未在连接字符串中包含用户名或密码。
  • .net 中有很多加密/解密程序。其中大部分是免费的。您需要在每个站点中包含解密类。
猜你喜欢
  • 1970-01-01
  • 2013-10-23
  • 2017-09-06
  • 2012-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
相关资源
最近更新 更多