Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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会话在silverlight应用程序上加载初始状态_Asp.net_Silverlight_Session Variables - Fatal编程技术网

基于asp.net会话在silverlight应用程序上加载初始状态

基于asp.net会话在silverlight应用程序上加载初始状态,asp.net,silverlight,session-variables,Asp.net,Silverlight,Session Variables,我正在编写一个类似于购物车系统的silverlight应用程序。 此应用程序只能在用户登录到asp.net网站后从该网站启动 第一次加载时,应用程序将通过WCF服务向后端发送请求,以检索购物车中的所有现有项目 因此,silverlight应用程序需要知道当前用户是谁,才能找到要加载的购物车 到目前为止,我发现有几种方法,但对其中任何一种都不满意: 使用wcf aspnet compat。silverlight可以通过询问wcf服务来询问当前用户是谁 使用xaml.InitParameters将参

我正在编写一个类似于购物车系统的silverlight应用程序。 此应用程序只能在用户登录到asp.net网站后从该网站启动

第一次加载时,应用程序将通过WCF服务向后端发送请求,以检索购物车中的所有现有项目

因此,silverlight应用程序需要知道当前用户是谁,才能找到要加载的购物车

到目前为止,我发现有几种方法,但对其中任何一种都不满意:

  • 使用wcf aspnet compat。silverlight可以通过询问wcf服务来询问当前用户是谁
  • 使用xaml.InitParameters将参数从页面传递到xaml,并以序列化格式传递最小数量的信息以标识用户
  • 通过查询字符串将参数传递给xaml(显然这也是可能的)
  • 谁能分享实现这一目标的最佳实践?
    谢谢

    我们在项目中使用第一个解决方案。在这种情况下,您不需要发明任何类型的序列化格式。这种方法的一个缺点是在启动时使用额外的异步逻辑

    服务的例子:

    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public class UserInfoService : IUserInfoService
    {
            public UserInfo GetUserInfo()
            {
                    if (HttpContext.Current.User.Identity.IsAuthenticated)
                            return null;
    
                    var userInfo = new UserInfo
                    {
                            Login = HttpContext.Current.User.Identity.Name,
                            Fullname = ...,
                    };
    
                    return userInfo;
            }
    }
    
    我认为通过initParams或查询字符串发送userid不是一个好主意。这样的事情应该更加隐蔽

    真正重要的是在每次服务呼叫中验证服务器上的用户,因为任何人都可以用与应用程序类似的方式呼叫您的服务