IE不提供保存ASP.NET表单的密码

Bin*_*olo 6 asp.net passwords internet-explorer webforms

有时候,微软会做出如此惊人的愚蠢行为,这会让我头疼.帮我发现它真的不是这样的......拜托!

我有一个ASP.NET(3.5)网站的登录页面的问题我正在开发IE浏览器(7或8 ...无法忍受打开6)不提供保存密码时用户登录.我检查了其他浏览器,Firefox,Chrome和Safari都提供保存密码.我还确认我的测试盒上的IE密码保存在其他网站上运行正常,例如Google等,它运行正常.

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

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

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

如果是这样的话,我就无法克服这是多么荒谬可笑.如果有人可以提供任何关于如何绕过它的想法,可以告诉我,我已经把它弄错了,我自己是一个大的,愚蠢的白痴,或者只是想确认这不仅仅是我认为这是非常愚蠢的,然后拜托,请这样做.

仅仅为了记录,我真的不想(并且不明白我为什么要这样做)妥协我的设计并将我的页面分成两部分(这会给用户带来更糟糕的体验).

Bin*_*olo 2

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

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

优点:

这一切都有效,并且用户会像他们期望的那样记住他们的登录信息。

缺点:

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

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

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