Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Asp.Net Web表单角色身份验证在发布网站几分钟后停止工作_C#_Asp.net_Webforms - Fatal编程技术网

C# Asp.Net Web表单角色身份验证在发布网站几分钟后停止工作

C# Asp.Net Web表单角色身份验证在发布网站几分钟后停止工作,c#,asp.net,webforms,C#,Asp.net,Webforms,我有一个Asp Web窗体网站,它在2.2.1版中使用Microsoft.AspNet.Identity.Owin来管理用户和角色。default.aspx页面仅允许角色“实验室、管理员、实验室主管”。当用户通过login.aspx页面登录时,如果用户的角色是允许的3个角色之一,则会重定向到default.aspx页面。这就是问题所在…在我发布网站后,这个角色身份验证可以工作5到10分钟。之后,即使用户的角色正确,用户也无法再登录。在它停止工作后,用户尝试登录,页面停留在登录页面上,从不重定向到

我有一个Asp Web窗体网站,它在2.2.1版中使用Microsoft.AspNet.Identity.Owin来管理用户和角色。default.aspx页面仅允许角色“实验室、管理员、实验室主管”。当用户通过login.aspx页面登录时,如果用户的角色是允许的3个角色之一,则会重定向到default.aspx页面。这就是问题所在…在我发布网站后,这个角色身份验证可以工作5到10分钟。之后,即使用户的角色正确,用户也无法再登录。在它停止工作后,用户尝试登录,页面停留在登录页面上,从不重定向到默认页面。如果我想让身份验证再次工作,我通常可以重新发布web.config页面,身份验证将再工作几分钟。我被难住了

因此,我的最新理论是,我的web.config文件正在变得损坏。我发现,如果我删除web.config文件并重新发布它,该网站将工作一段时间,然后再次停止工作。这是我的代码,允许我提到的3个角色,并拒绝所有其他用户

my web.config文件中的代码段:

<configuration>
  <location path="default.aspx">
    <system.web>
      <authorization>
        <allow roles="Lab, Admin, LabSupervisor"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>

我希望我能解释原因,但这似乎已经解决了问题。

请发布相关代码。
protected void LogIn(object sender, EventArgs e)
        {
            if (IsValid)
            {
                // Validate the user password
                var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
                var signinManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>();

                // This doen't count login failures towards account lockout
                // To enable password failures to trigger lockout, change to shouldLockout: true
                var result = signinManager.PasswordSignIn(UserName.Text, Password.Text, RememberMe.Checked, shouldLockout: false);

                switch (result)
                {
                    case SignInStatus.Success:
                        IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);

                        break;
                    case SignInStatus.LockedOut:
                        Response.Redirect("/Account/Lockout");
                        break;
                    case SignInStatus.RequiresVerification:
                        Response.Redirect(String.Format("/Account/TwoFactorAuthenticationSignIn?ReturnUrl={0}&RememberMe={1}", 
                                                        Request.QueryString["ReturnUrl"],
                                                        RememberMe.Checked),
                                          true);
                        break;
                    case SignInStatus.Failure:
                    default:
                        FailureText.Text = "Invalid login attempt";
                        ErrorMessage.Visible = true;
                        break;
                }
            }
        }
Session["DummySession"] = "DummySession";