c# - ASP.NET MVC - 如何安全地保留用户的密码以进行 SQL Server 身份验证?

标签 c# asp.net-mvc passwords

我有一个使用 SQL Server 后端的 ASP.NET MVC 应用程序。但是,SQL Server 的身份验证方法是 SQL Server 身份验证,这意味着我需要询问用户密码才能通过我的应用程序连接到数据库。
理想情况下,我不想要求一次密码,为 session 建立从应用程序到数据库的永久连接,然后完全忘记密码,因为我想在需要时打开和关闭与数据库的连接执行数据库操作时。
但显然,我不想将他们的密码存储在 Session 中。对象,无论应用程序是否为 https连接和面向内部,因为这是一个很大的禁忌。
在 session 期间保留密码的最安全方法是什么?
我无法更改身份验证方法,因为理想情况下我想使用 Windows 身份验证,但这是不可能的。

最佳答案

您有两种选择来解决此问题。

  • 如果您使用 asp.net 身份,那么您可以向用户身份添加自定义声明,该声明将为 session 保存在身份验证 cookie 中。在此处查找示例和文章:

  • How to add claims in Asp.Net Identity
    Adding Custom Claims when Logging In with Asp.Net Core Identity Cookie
  • 如果您不使用 Asp.net Identity,而是遵循旧样式的 Forms 身份验证,则可以将其添加为身份验证 cookie 中的自定义用户数据。

  • How to store some custom data in form auth cookie
    保存在身份验证 cookie 中的用户数据将被加密,可以轻松检索,并在注销或 session 到期后被丢弃。如果您的应用程序托管在与 session 变量不同的服务器场上,它也将是线程安全的。

    关于c# - ASP.NET MVC - 如何安全地保留用户的密码以进行 SQL Server 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62771560/

    相关文章:

    c# - 使用语句后,Sqlite 数据库保持打开状态并且文件锁定

    asp.net-mvc - 通过 AJAX 请求部分 View 时,MVC 路由会更改 url 哈希

    database - 如何保护存储在数据库中的敏感密码

    java - 如何阅读使用未知的随机所有者密码创建的 PDF?

    c# - 在 Winforms 应用程序中使用 Chrome 或 Firefox?

    c# - HttpWebRequest 和 Uri 改变 requestUri

    c# - Linq查询以获取两个日期之间的所有值

    jquery - 将 ASP.NET MVC 3 应用程序中的 jQuery 更新到最新版本

    django 密码哈希每次都不同

    javascript - C# 类属性在 Javascript 中不可访问