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

Ada*_*ane 7 asp.net webforms forms-authentication asp.net-membership

在开发ASP.NET站点时,是否可以设置自动登录?

例如,每次我构建网站并运行它时,我都必须再次登录.我不想完全禁用安全性,但我希望在我在网站上工作时自动登录.

Dar*_*rov 4

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

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

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

理想情况下,该页面应从构建过程中排除并且永远不会发布。


正如 @Mufasa 在评论部分指出的,如果您的站点使用 Session,您可能需要使用进程外模式(StateServer 或 SqlServer),而不是因为InProc当您重新编译时,应用程序域将被重新加载,并且存储在内存中的所有内容都会丢失。

  • 此外,如果您的站点除了 cookie 身份验证之外还依赖于会话信息,您可能需要切换到外部状态服务(例如 StateServer 或 SQLServer 模式),以便会话信息在应用程序重新启动期间保留。 (2认同)
  • 您可以检查 -- if(System.Diagnostics.Debugger.IsAttached) -- 以确定您是否处于调试模式,或者在某处设置一个变量(如果这还不够)。 (2认同)