ASP.NET身份验证有时无法登录

5
我有一个使用asp.net webforms模板创建的Web应用程序。它使用Asp.net身份验证进行登录过程。为了让身份验证使用我的数据库,我更改了默认连接字符串以指向自己的数据库。
我没有对asp.net webforms应用程序的默认模板进行任何显着的更改。
我发布了我的网站并将其添加到IIS站点中。现在我可以通过在浏览器中写入http://myip来访问我的网站。然而,一段时间过后,我的登录页面开始无法工作。当我使用正确的用户名和密码登录时,它应该将我重定向到我想要到达的页面,但它的行为就像我没有登录,并再次带我回到登录页面。
这就像我重新加载了登录页面而不是登录。
当我通过IIS重置我的应用程序时,我可以像往常一样登录。它正常工作。
问题出在哪里?
为什么我的登录页面有时有效,有时无效?这与我的IIS设置有关吗?我没有对它们进行任何显着的更改。它们几乎是默认设置。
我的操作系统是Windows 8.1 Enterprise N
我使用Visual Studio 2013(.NET 4.5)

1
我现在也遇到了同样的问题。有时候它能正常工作,但有时候却不能。你找到了任何解决方法或者可能导致这个问题的错误吗? - AdamRoof
我对应用程序回收也做了同样的事情。我的回收周期设置为3180分钟。我的使用率非常低(每周只有3个用户)。我仍在寻找错误。下次我会尝试运行跟踪,但这并不总是发生在我可以这样做的正确时间和计算机上。 - AdamRoof
4个回答

1
我不确定您是否使用了Owin + Asp.NET Identity,但我假设您是这样做的,请查看此链接,这是SO中另一个类似的问题,详细解释了此问题并提供了一种解决方法。
部分引用:
System.Web有自己的cookie信息主源,而这不是Set-Cookie头。 Owin只知道Set-Cookie头。解决方法是确保由Owin设置的任何cookie也是如此。

0

-1

我曾经遇到过这个问题,花了几个小时才解决。后来我偶然发现,在进入登录页面之前,先访问一个包含 Session["LastPage"] = Request.UrlReferrer.OriginalString; 的页面似乎可以解决这个问题。(我的网站上有一些不需要登录就可以访问的页面)。所以我在登录页面添加了这行代码,问题就解决了。我想这应该是 Beanciopter 提到的同样的解决方法。


-1

我现在也遇到了同样的问题。有时它能正常工作,有时却不能。你找到了任何解决方法或可能导致此问题的错误吗?

更新: 我在服务器上找到了一个(希望)相关的事件日志,这让我运行了 Owin 包的更新(工具 > NuGet 包管理器控制台) 我运行了 "Update-Package Microsoft.Owin" 及其子集,并成功登录。然后我只是更新了 Packages.config 中的所有包,当然要小心使用并进行测试,特别是如果您不想更新 jQuery 包。

从一些资源中得知,当 Owin 尝试检查/设置登录 cookie 时,它会导致 Response.Flush 或 .End 问题。

http://katanaproject.codeplex.com/discussions/540202 https://www.nuget.org/packages/Microsoft.Owin/3.0.1

事件 ID 1309 ASP.NET 4.0.30319.0 异常信息:在 HTTP 标头发送后服务器无法追加标头。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接