ASP.NET网站在开发期间的自动登录

7
在开发ASP.NET网站时,有没有一种设置自动登录的方法?
例如,每次构建并运行该网站时,我都需要重新登录。我不想完全禁用安全性,但我希望在我工作时自动化登录过程。

你有 Quick Test Pro 吗?它可以做到这一点。 - Raghav
请将问题标记为已回答。 - Shimmy Weitzhandler
3个回答

4

只需保持浏览器打开,然后在 Visual Studio 中进行修改和/或重新编译后按下 Ctrl+F5。这将保留身份验证 cookie。

另一种可能性是设置自动登录页面,在其中测试是否处于调试模式,并使用 FormsAuthentication.RedirectFromLoginPage("someusername", false); 强制进行登录。然后,您可以指示 Visual Studio 始终在此 URL 上运行网站:

protected void Page_Load(object sender, EventArgs e)
{
    #if DEBUG
    FormsAuthentication.RedirectFromLoginPage("someusername", false);
    #endif
}

理想情况下,这个页面应该从构建过程中排除,并且永远不要发货。
正如@Mufasa在评论部分指出的那样,如果您的网站使用Session,则可能需要使用进程外模式(StateServer或SqlServer)而不是InProc,因为当您重新编译应用程序域时,将重新加载并且存储在内存中的所有内容都会丢失。

2
此外,如果您的网站除了使用cookie身份验证之外还依赖于会话信息,那么您可能需要切换到外部状态服务,例如StateServer或SQLServer模式,以便在应用程序重新启动期间保留会话信息。 - Jon Adams
@ Mufasa,是的,你对Session的看法很好。谢谢。我会更新我的回答来考虑它。 - Darin Dimitrov
2
你可以检查 -- if(System.Diagnostics.Debugger.IsAttached) -- 来确定你是否处于调试模式,或者在其他地方设置一个变量如果这不够用。 - Jemes
我也倾向于将浏览器窗口保持在后台,并重新构建项目,然后刷新页面。这样你可以同时在其他浏览器中测试它。只有当你想从VS内部调试代码时,才需要重新进行登录过程。 - Ira Rainey

1

在调试时使用Windows集成身份验证,在生产代码中使用表单身份验证?

如果可以的话,您可以为不同的环境拥有多个web.config文件-请参见问题如何处理多个环境的多个web.config文件?

我们也正在研究为不同的环境使用多个web.config。我们有一个想法(我们还没有详细研究),即使用T4代码生成(Visual Studio的一部分)作为构建过程的一部分来生成web.config。


0

这可能取决于您的安全要求有多复杂,但您可以潜在地拥有一个备用登录页面,该页面使用集成(NTLM或Kerberos)身份验证,并使您的Windows凭据自动流经站点。


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