asp.net网络表单在移动浏览器中出错

时间:2015-06-15 22:09:53

标签: android asp.net iis mobile webforms

我有一个asp.net网络表单网站,在PC上运行良好。但是,当我尝试从移动设备访问它时,它会给出一个对象引用错误。该站点是asp.net 4.5.1并使用普通的asp.net服务器控件。

 public partial class index : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        LoginView lView = (LoginView)this.Master.FindControl("LoginView1");
        lView.Visible = false;

        if (Request.QueryString["exp"] != null)
        {
            string msg = "Session expired please login.";
            ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "$(function() { LoginFail('" + msg + "'); });", true);
        }

    }

    protected void btnLogin_Click(object sender, EventArgs e)
    {
        ManchesterContext context = new ManchesterContext();
        if (Membership.ValidateUser(txtUserId.Text, txtPassword.Text))
        {

            MembershipUser user = Membership.GetUser(txtUserId.Text);

            aspnet_Users dbUser = context.aspnet_Users.Where(u => u.UserName.Equals(user.UserName)).FirstOrDefault();

            if (dbUser.PassUpdated)//This means user has already changed default password. Perform login.
            {

                SetAuthenticationCookie(user);
                aspnet_Users dbEntry = context.aspnet_Users.Where(u => u.UserName == user.UserName).FirstOrDefault();
                SessionInfo.InitSession(dbEntry.UserId, dbEntry.UserName);

                Session.Add("USR_KEY", dbEntry.UserId);
                FormsAuthentication.RedirectFromLoginPage(user.UserName,false);
            }
            else //User has not updated default password.
            {
                Session.Add("TEMP_USR", txtUserId.Text);
                Session.Add("TEMP_PASS", txtPassword.Text);
                Response.Redirect("ChangePassword.aspx");
            }

        }
        else
        {
            string msg = "Invalid User Id or Password.";
            ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "$(function() { LoginFail('" + msg + "'); });", true);
        }
    }

    public void SetAuthenticationCookie(MembershipUser user)
    {
        Response.Cookies.Clear();
        var cookie = new HttpCookie(FormsAuthentication.FormsCookieName)
        {
            Expires = System.DateTime.Now.AddDays(-1),
            HttpOnly = true

        };
        HttpContext.Current.Response.Cookies.Add(cookie);
        return;
    }

}

0 个答案:

没有答案