基于asp.net会话在silverlight应用程序上加载初始状态
我正在编写一个类似于购物车系统的silverlight应用程序。 此应用程序只能在用户登录到asp.net网站后从该网站启动 第一次加载时,应用程序将通过WCF服务向后端发送请求,以检索购物车中的所有现有项目 因此,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将参
谢谢我们在项目中使用第一个解决方案。在这种情况下,您不需要发明任何类型的序列化格式。这种方法的一个缺点是在启动时使用额外的异步逻辑 服务的例子:
[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不是一个好主意。这样的事情应该更加隐蔽
真正重要的是在每次服务呼叫中验证服务器上的用户,因为任何人都可以用与应用程序类似的方式呼叫您的服务
嗯