ASP.NET MVC-如何安全地保留SQL Server身份验证用户的密码



我有一个使用SQL Server后端的ASP.NET MVC应用程序。但是,SQL Server的身份验证方法是SQL Server身份验证,这意味着我需要询问用户的密码才能通过我的应用程序连接到数据库。

理想情况下,我不想要求一次密码,为会话永久地从应用程序连接到数据库,然后完全忘记密码,因为我想在需要时打开和关闭与数据库的连接,并且只有在执行数据库操作时才这样做。

但很明显,我也不想将他们的密码存储在Session对象中,不管应用程序是否是https连接和面向内部的,因为这是一个很大的禁忌。

在会话期间保持密码最安全的方法是什么?

我无法更改身份验证方法,因为理想情况下我希望使用Windows身份验证,但这是不可能的。

您有两个选项来解决此问题。

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

如何在Asp.Net Identity 中添加声明

使用Asp.Net核心身份Cookie 登录时添加自定义声明

  1. 如果您不使用Asp.net Identity,而是使用旧式的Forms身份验证,则可以将其作为自定义用户数据添加到身份验证cookie中

如何以authcookie 的形式存储一些自定义数据

保存在身份验证cookie中的用户数据将被加密,可以轻松检索,并在注销或会话到期后丢弃。如果您的应用程序托管在不同于会话变量的服务器场上,它也将是线程安全的。

相关内容

最新更新