2010-05-12 34 views
1

我正在两个ASP.NET网站上工作。两者都使用基于表单验证的自定义验证过程:ASP.NET网站每次编译后都需要登录

<authentication mode="Forms"> 
    <forms cookieless="UseCookies"/> 
</authentication> 

在Web.config中设置。

当我编译第一个网站时,它总是会记住我之前输入的凭据,就像预期的那样。

当我编译第二个网站时,它每次都忘记了我之前输入的所有凭证,并且.ASPXAUTH cookie不再存在。

什么会导致第二个网站这样做?从哪里开始寻找解决这个问题的方法?

+0

您如何访问这些网站?他们在Web服务器,开发工作站等?你使用VS和F5来运行这些网站吗?我相信需要更多信息。 – Lazarus 2010-05-12 10:20:24

+0

这两个网站目前都处于调试模式(VS和F5),所以在开发工作站上。 – 2010-05-12 10:27:04

+0

什么是F5?一个Web服务器? – 2015-12-09 09:59:17

回答

0

也许当第二个站点重新编译存储在会话中的某些类或其他对象更改时,应用程序必须重新启动会话,但在第一个站点中,存储在会话中的唯一东西是标准.net对象,没有被重新编译。这是否会导致真实世界的问题,当您重新编译网站时,通常会丢失会话状态,但这不会导致任何问题,除非您每天更新多次实时代码并踢出系统用户。

+0

我会看看是否有这种情况来确认。我不记得在会话中存储任何我自己的类对象,但我不确定。 它导致的唯一问题是,目前,每次我想测试网站时都必须输入密码,这非常烦人。另一种方法是在调试过程中对用户名/密码进行硬编码或根据Active Directory帐户进行登录,但我只是想知道问题出现的原因。 – 2010-05-12 11:12:02

+0

如果您正在调试,您可以使用#if编译器指令拥有一段自动登录的代码。代码段不会在发布代码中编译。 http://msdn.microsoft.com/en-us/library/4y6tbswk%28VS.80%29.aspx – 2010-05-12 11:35:29

+0

可能有一个强大的组件名称是原因?我正在努力解决为什么我会遇到同样的问题。 – 2015-12-09 10:02:29