Web 应用程序中的注销问题

Logout issue in web app

本文关键字:注销 问题 应用程序 Web      更新时间:2023-09-26

我有一个 asp.net 的Web应用程序,我有这种奇怪的行为。

在登录视图上,它调用以下内容注销

protected void Unnamed_LoggingOut(object sender, LoginCancelEventArgs e)
    {
      Context.GetOwinContext().Authentication.SignOut();
    }

现在这在网站的根目录以及帐户子文件夹和另一个管理员子文件夹中工作,但我还有另一个子文件夹,它只是无法正常工作,当我单击登录状态注销时,我在 javascript 中跟踪了一个问题

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['mainForm'];
if (!theForm) {
    theForm = document.mainForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>

我在表单提交()上得到这个;

 Uncaught TypeError: object is not a function
MyDetails:179 __doPostBackMsAjaxJs?v=c42ygB2U07n37m_Sfa8ZbLGVu4Rr2gsBo7MvUEnJeZ81:1 Sys.WebForms.PageRequestManager._doPostBackMsAjaxJs?v=c42ygB2U07n37m_Sfa8ZbLGVu4Rr2gsBo7MvUEnJeZ81:1 (anonymous function)VM138:1 (anonymous function)

有什么建议吗?

没有任何进一步的信息,据我所知,最有可能的问题是您的表单包含一个<input><button>idname属性设置为 "submit" 。这将导致theForm.submit返回该元素,而不是您期望的submit函数。我的建议有点笨拙,但应该有望解决问题。而不是

theForm.submit();

尝试

document.createElement('form').submit.call(theForm);

如果这有效,那么我认为问题就是它。

编辑:正如建议的那样,更永久的解决方案是将idname更改为其他内容,以防止意外干扰。