Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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 登录sencha touch 2后保留登录信息_Asp.net_Extjs_Touch_Sencha Touch 2_Ashx - Fatal编程技术网

Asp.net 登录sencha touch 2后保留登录信息

Asp.net 登录sencha touch 2后保留登录信息,asp.net,extjs,touch,sencha-touch-2,ashx,Asp.net,Extjs,Touch,Sencha Touch 2,Ashx,我使用SenchaTouch2制作了一个小型web应用程序。我已经完成了登录页面。第二页的目的是获取发布产品的当前用户会话。这是登录页面 onSignInCommand: function (view, username, password) { var me = this; var loginView = this.getLoginView(); if (username.length == 0 || password.length == 0) { lo

我使用SenchaTouch2制作了一个小型web应用程序。我已经完成了登录页面。第二页的目的是获取发布产品的当前用户会话。这是登录页面

onSignInCommand: function (view, username, password) {
    var me = this;
    var loginView = this.getLoginView();
    if (username.length == 0 || password.length == 0) {
        loginView.showSignInMessage("Please enter your username and password.");
        return;
    }

    loginView.setMasked({
        xtype: "loadmask",
        message:"Signing in..."
    });

    //Set ajax
    Ext.Ajax.request({
        url: "./ajax/Account.ashx",
        params: {
            type: "login",
            username: username,
            password: password
        },
        success: function (response) {
            var loginResponse = Ext.JSON.decode(response.responseText);
            if (loginResponse.success) {
                me.sessionToken = loginResponse.sessionToken;
                me.showSignInSuccess();
            } else {
                me.sessionToken = null;
                me.showSignInFailedMessage(loginResponse.message);
            }
        },
        failure: function () {
            me.sessionToken = null;
            me.showSignInFailedMessage('Login failed. Please try again later.');
        }
    });
}
和服务器端:

private void Login(HttpContext context)
{
    var resultStt = "";
    var userid = context.Request["username"];
    var password = context.Request["password"];
    if(!string.IsNullOrEmpty(userid) && !string.IsNullOrEmpty(password))
    {
        var user = new Select() .From<User>()
                                .Where("UserID").IsEqualTo(userid)
                                .And("UserPassword").IsEqualTo(password)
                                .ExecuteSingle<User>();
        if(user!=null)
        {
            context.Session.Add("PickerUser",user);
            resultStt = " {\"success\":true, \"user\":{ \"userId\":"+user.UserID+", \"sessionId\":\"" + context.Session.SessionID + "\"}}";
        }
        else
        {
            resultStt = " {\"success\":false, \"message\":\"Login failed. Please enter the correct credentials.\"}";
        }
    }
    context.Response.Write(resultStt);
}
无法获取会话,因为ajax是在启动应用程序时加载的

var currenUser = context.Session["PickerUser"] as User;

您可以删除配置文件:

autoLoad: true
并在登录成功处理程序函数中调用:

Ext.getStore('yourStoresId').load({
    callback: function() {
        console.log('my store has loaded');
    }
});

只是一个建议,我建议切换到令牌方法或类似方法
Ext.getStore('yourStoresId').load({
    callback: function() {
        console.log('my store has loaded');
    }
});