2009-10-25 50 views
6

有时候微软会做出如此惊人的愚蠢行为,它会让我的头部受伤。帮助我发现事实并非如此......请!IE不提供保存ASP.NET表单的密码

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

我所做的搜索已经很少了,但它确实出现了什么似乎表明IE不会提供保存密码,如果页面上的表单包含两个以上的文本控件。我的表格中也有这种情况,它也有允许用户注册的控件。当我删除这些额外的控制,IE神奇地提示保存密码,所以这似乎是真实的。

现在...如果ASP.NET允许我有多种形式,一切都会好起来的,我将能够将这两个函数分离为独立的形式,并且IE会提示保存密码。但是,ASP.NET不允许我这样做,因为它只允许一个表单。我可以在那里搞一个非ru​​nat =服务器的形式,并尝试这样做,但猜猜看是什么?因为我的页面使用了一个MasterPage,所以我添加的任何表单标签都会自动删除,即使它是非runat =服务器表单。

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

如果是这样,我只是不能克服这是多么荒谬的荒谬。如果任何人都可以提供任何想法来解决这个问题,可以告诉我,我已经弄错了所有,我自己也是一个笨蛋笨蛋,或者只是想确认这不仅仅是我认为这是非常愚蠢的,然后请,请这样做。

只是为了记录,我真的不希望(也不明白为什么我应该)妥协我的设计和拆分我的网页在两个(这将导致用户更糟糕的体验)。

+0

MS部分的好奇设计决定。不知道那里有什么动机。至于你的设计......如果你确信密码保存对于用户来说是一种破坏行为,那么为什么不提供让用户登录呢?或者你也这样做? – Bryan 2009-10-27 01:03:47

+0

是的,我认为这将是我唯一的选择,我只是希望确认这种行为,因为我已经找不到它了。而且,正如你所说,这是一个很好奇的问题。 这并不是说密码保存是一个交易断路器,只是很难向任何人解释,可能会问为什么这是不可能的,以及为什么Microsoft平台+微软浏览器=失败,在这种情况下。 – BinarySolo 2009-10-27 20:11:08

+0

您是否尝试过使用原始HTML文本框提交回aspx页面的表单? – Chris 2009-10-30 16:37:16

回答

2

@Chris这就是我最后的目的。

因此,为了其他人的利益,我仍然在runat = server窗体中拥有我的激活控件,并在该页面的代码中处理这些控件。然后我有第二个标准的HTML表单,它带有HTML输入文本框,并发布到不同的.NET页面。这涉及用户登录。我通过Request.Form获取此页面中的值并处理来自此处的登录。

上升空间:

的所有作品,并得到用户的登录记得,因为他们会期望。

缺点:

我失去了使用母版(因为我需要在页面两种形式),所以我有效不得不复制模板的能力 - 我不喜欢这么多。

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

就像我说的那样,它只是起作用,在这种情况下,这是最重要的。感谢您的输入。

+0

为什么不直接在点击登录按钮时从页面中删除其他文本框时运行的页面添加一些JavaScript? – Michael 2012-04-29 22:04:26

+0

您可以使用母版页,并且拥有ASPX表单标签之外的内容。在某些布局中工作可能会很困难,但如果您可以使用绝对或相对定位,那么可能不会太差。您只需将内容占位符放置在表单标签之外的母版页上方或下方,然后将内容控件放置在内容页面中。您可能已经使用过的一个很好的例子是将其放置在头部以在内容页面中添加脚本/样式。 – eselk 2012-12-12 18:15:41