有时微软会做出如此惊人的愚蠢行为,这会让我的头受伤。帮帮我发现情况真的不是这样......拜托!
我的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开发了我的网站(错误......是微软产品)。
如果是这样的话,我就无法克服这是多么令人头疼的荒谬。如果有人可以提供任何关于如何绕过它的想法,可以告诉我,我已经把它弄错了,我自己是一个大笨蛋,或者只是想确认一下,这不仅仅是我认为这是非常愚蠢的,然后拜托,请这样做。
仅仅为了记录,我真的不想(并且不明白我为什么要这样做)妥协我的设计并将我的页面分成两部分(这会给用户带来更糟糕的体验)。 / p>
答案 0 :(得分:2)
@Chris这就是我最终的目的。
为了其他人的利益,我仍然在runat = server表单中使用激活控件,并在该页面的代码中处理这些控件。然后我有第二个标准的HTML表单,其中包含HTML输入文本字段,可以发布到不同的.NET页面。这涉及用户登录。我通过Request.Form获取此页面中的值,并从此处处理登录。
上行空间:
一切正常,用户可以按照他们的预期记住他们的登录信息。
<强>缺点:强>
我失去了使用MasterPage的能力(因为我在页面中需要两个表单)所以我实际上不得不复制模板 - 我不喜欢这么多。
如果用户登录无效或导致某种错误,我必须重定向到初始页面并向其传递一个标志,以使其显示相关的错误消息 - 我也不喜欢这样。
就像我说的那样,它只是起作用,在这种情况下,这才是最重要的。感谢您的投入。