Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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
成功登录后,我再次被重定向到登录页面ASP.NET C_Asp.net_C# 3.0 - Fatal编程技术网

成功登录后,我再次被重定向到登录页面ASP.NET C

成功登录后,我再次被重定向到登录页面ASP.NET C,asp.net,c#-3.0,Asp.net,C# 3.0,我有一个使用登录控件的登录页面,在本地机器上一切正常,但在服务器上不工作。成功登录后,没有任何错误或错误,它会再次重定向到登录页面。 下面是我的代码。 web.config <location path="Admin"> <system.web> <authorization> <allow roles="Admin,user"/> <deny users="*"/> &l

我有一个使用登录控件的登录页面,在本地机器上一切正常,但在服务器上不工作。成功登录后,没有任何错误或错误,它会再次重定向到登录页面。 下面是我的代码。 web.config

<location path="Admin">
    <system.web>
      <authorization>
        <allow roles="Admin,user"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

  <authentication mode="Forms">
      <forms name="RJD" domain="abc.net" loginUrl="Login.aspx" protection="All" slidingExpiration="true" defaultUrl="~/Admin/ApproveComments.aspx" timeout="60" path="/">
      </forms>
    </authentication>

 protected void ctrLogin_Authenticate(object sender, AuthenticateEventArgs e)
        {
            FormsAuthentication.Initialize();
            clsAuthenticate objauthonticate = new clsAuthenticate();

            try
            {
                objauthonticate.user = ctrLogin.UserName.Trim();
                objauthonticate.Pasword = ctrLogin.Password.Trim();
                if (objauthonticate.Authonticate())
                {
                    HttpContext.Current.Session["user"] = objauthonticate.user.ToString();
                    CreateTicket();
                    e.Authenticated = true;
                //    FormsAuthentication.RedirectFromLoginPage(ctrLogin.UserName, ctrLogin.RememberMeSet);
                    Response.Redirect("~/Admin/ApproveComments.aspx");

                }
                else
                {
                    e.Authenticated = false;
                }
            }
            catch (Exception ex)
            {
                //throw ex;
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Alert", "alert('" + ex.Message + "');", true);
            }

        }
        private void CreateTicket()
        {


            clsAuthenticate oblogin = new clsAuthenticate();
            string role = oblogin.getRoleByID(Session["user"].ToString());

            FormsAuthentication.HashPasswordForStoringInConfigFile(ctrLogin.Password, "sha1");

            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, "Forms", DateTime.Now, DateTime.Now.AddMinutes(30), true, role);

            string hash = FormsAuthentication.Encrypt(ticket);
            HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
            Response.Cookies.Add(cookie);
        }

当用户使用表单身份验证对网站进行身份验证时,服务器会创建一个cookie。cookie的值是加密的表单身份验证票证。每次向应用程序发出请求时,cookie都会传递给服务器,FormsAuthenticationModule类会解密cookie值并确定用户是否有效。 我认为您的项目web.config中有blow标记。移除它

...
<modules>
    <remove name="FormsAuthentication" />
</modules>
....

您的IIS中设置的身份验证类型是什么?应启用窗体身份验证。@Sam:允许匿名访问、集成Windows身份验证和基本身份验证您应启用窗体身份验证。如果未安装windows功能,如果在IIS中看不到该选项,则必须执行此操作。没有服务器访问权限,请选择其他选项。您必须请求服务器管理员执行此操作。如果IIS中没有表单身份验证,则没有其他选项