【问题标题】:Passwords get lost after deployment部署后密码丢失
【发布时间】:2025-12-02 04:15:02
【问题描述】:

我管理一个有多个用户的 ASP.NET MVC 3 网站。每个用户都有一个密码,当他们登录网站时,他们的浏览器会保存这个密码。在过去的几个月里,我对该网站进行了多次部署以纠正错误或实施新功能,都没有任何问题。

话虽如此,本周,当我像往常一样部署该网站时,所有用户都丢失了他们在浏览器中保存的密码。登录名仍保存在内存中,但密码已丢失。几个月来登录系统没有任何变化,这是第一次丢失密码。

我试图寻找可以解释此问题的可能性,但无济于事。您知道如何解释这个问题吗?

非常感谢。

【问题讨论】:

  • 您确定在您的更新期间没有推送到他们的桌面吗?
  • 浏览器如何保存密码?是浏览器的普通密码记住功能吗?它是否存储为 cookie(可能带有到期日期)?这是一个同时向客户推送更新和策略的公司环境吗?
  • @AndersAbel 感谢您的回复。我的用户不是来自公司环境,所以没有推送给他们。我自己没有将密码保存在 cookie 中,浏览器正在保存密码。我使用的唯一 cookie 是我在用户正确登录后发出的 ASP.NET 身份验证 cookie。我看不出它会产生什么影响。您还有其他想法吗?

标签: asp.net asp.net-mvc deployment web passwords


【解决方案1】:

我怀疑这种情况下的 cookie;要么它们过期(在一段时间后),它恰好与您的部署同时发生。或者在您的部署中,您更改了 cookie 名称/路径等,因此现在浏览器无法验证用户。

【讨论】:

    【解决方案2】:

    这里有几个原因:

    1.如果密码或用户名文本框名称发生变化,浏览器将解除登录与网站的关联。

    razor 中的原始语法:

    @Html.PasswordFor(model => model.密码)

    新密码框:

    @Html.PasswordFor(model => model.MyPassword)

    2.如果视图更改名称或登录发生在新视图中,则浏览器将解除密码与网站的关联

    3.还需要检查浏览器缓存是否过期。

    4.检查浏览器上的安全更新

    【讨论】:

    • 感谢您的回复。我也怀疑第 1 点和第 2 点,但在验证后,我注意到没有更改任何文本框名称,也没有更改视图名称。我的用户不是来自公司环境,所以没有推送给他们。我自己没有将密码保存在 cookie 中,浏览器正在保存密码。我使用的唯一 cookie 是我在用户正确登录后发出的 ASP.NET 身份验证 cookie。我看不出它会产生什么影响。您还有其他想法吗?
    • 您有用于登录的 SSL 证书吗?