【问题标题】:IE not offering to save password of ASP.NET formIE 不提供保存 ASP.NET 表单的密码
【发布时间】:2010-12-09 22:42:27
【问题描述】:

有时微软会做一些非常愚蠢的事情,让我头疼。帮我看看真的不是这样……拜托!

我正在开发的 ASP.NET (3.5) 站点的登录页面存在问题,IE(7 或 8 ... 无法打开 6)不提供保存用户登录时的密码。我检查了其他浏览器,Firefox、Chrome 和 Safari 都提供保存密码的功能。我还确认在我的测试框中保存 IE 密码在其他网站上运行正常,例如谷歌等它工作正常。

我所做的搜索很少出现,但出现的很少似乎表明如果页面上的表单包含两个以上的文本控件,IE 将不会提供保存密码。我的表单就是这种情况,它还具有允许用户注册的控件。而当我删除这些额外的控件时,IE 会神奇地提示保存密码,所以这似乎是真的。

现在...如果 ASP.NET 允许我拥有多个表单,一切都会好起来的,我可以将这两个函数分离成独立的表单,IE 会提示保存密码。但是,ASP.NET 不允许我这样做,因为它只允许一个表单。我可以在那里捏造一个非 runat=server 表单并尝试这样做,但你猜怎么着?因为我的页面使用 MasterPage,所以我添加的任何表单标签都会被自动删除,即使它是非 runat=server 表单。

所以,如果不从根本上改变我想要实现的目标,我看不到任何解决方法。看来我必须向我的用户解释,如果他们使用 IE(Microsoft 产品),他们将不会被提示保存密码,因为我使用 ASP.NET(错误……Microsoft 产品)开发了我的网站。

如果是这样,我就是无法理解这是多么荒谬可笑。如果有人可以就如何绕过它提供任何想法,可以告诉我我错了,我自己就是一个大笨蛋,或者只是想确认不仅仅是我认为这非常愚蠢,那么请,请这样做。

仅作记录,我真的不想(也不明白为什么必须)妥协我的设计并将我的页面分成两部分(这将导致用户体验更差)。

【问题讨论】:

  • MS 方面的奇怪设计决定。不知道有什么动机。至于你的设计……如果你确信保存密码对用户来说是一个破坏交易的行为,为什么不提供让用户保持登录呢?还是你也这样做?
  • 是的,我认为这将是我唯一的选择,我只是希望确认这种行为,因为我能找到的东西很少。而且,正如你所说,这是一个奇怪的问题。在这种特殊情况下,保存密码并不是一个交易破坏者,只是很难向任何可能会问为什么不可能以及为什么 Microsoft 平台 + Microsoft 浏览器 = 失败的人解释。
  • 您是否尝试过将原始 HTML 文本框与提交回 aspx 页面的表单一起使用?

标签: asp.net internet-explorer webforms passwords


【解决方案1】:

@Chris 这就是我最终的目标。

因此,为了其他人的利益,我仍然以 runat=server 形式保存激活控件,并在该页面的代码中处理这些控件。然后我有第二个标准 HTML 表单,其中包含发布到不同 .NET 页面的 HTML 输入文本字段。这处理用户登录。我通过 Request.Form 获取此页面中的值并从这里处理登录。

优点:

一切正常,用户可以按预期记住他们的登录信息。

缺点:

我失去了使用 MasterPage 的能力(因为我需要在页面中使用两个表单)所以我实际上不得不复制模板 - 我不太喜欢这个。

如果用户登录无效或导致某种错误,我必须重定向到初始页面并传递一个标志以使其显示相关错误消息 - 我也不喜欢这样。

不过,就像我说的那样,它确实有效,在这种情况下,这才是最重要的。感谢您的意见。

【讨论】:

  • 为什么不向页面添加一些javascript,当点击登录按钮时运行的页面会从页面中删除其他文本框?
  • 您可以使用 MasterPage 并在 ASPX 表单标记之外包含内容。在某些布局中工作可能很困难,但如果您可以使用绝对或相对定位,那么可能还不错。您只需在表单标记之外的母版页上放置一个内容占位符,无论是上方还是下方,然后将其内容控件放置在您的内容页面中。您可能已经使用过的一个很好的例子就是在 head 部分放置一个以在内容页面中添加脚本/样式。
猜你喜欢
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 2012-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-20
相关资源
最近更新 更多