使用WCF服务的WPF应用程序的会话超时

时间:2014-06-11 10:33:35

标签: wpf vb.net wcf

需要WPF应用程序的帮助..

应用程序使用WCF服务允许用户登录并执行其他数据库事务。如果会话超时,客户端希望应用程序注销用户。

能够在表单加载事件上添加一个函数来检查用户是否已登录并显示超时消息并注销用户。

为表单创建了一个基类,并且具有表单的可覆盖Onload事件,使用此事件,如果用户已登录,我可以检查所有表单。

问题:

当用户在表单上并且当用户在表单上时存在会话超时时。当用户点击一个按钮或下拉按钮会触发对WCF服务的调用时,应用程序会在会话超时时给出错误。

我要么必须验证用户是否登录了将调用WCF服务的每个函数和控件事件。

是否存在类似于网页加载事件的方式,该事件始终在页面上的每个事件上调用,我们可以使用该事件检查用户是否已登录。

你对此的帮助会有很大的帮助

1 个答案:

答案 0 :(得分:1)

您可以收听以下所有RoutedEvents。但是这会调用所有事件(我的意思是所有事件),因此您可以检查特定的RoutedEvents Button.ClickEventComboBox.SelectionChanged

    public MainWindow()
    {
        InitializeComponent();
        RoutedEvent[] events = EventManager.GetRoutedEvents();

        if(events!=null)
        {
           foreach (RoutedEvent e in events)
            AddHandler(e, new RoutedEventHandler(GenericHandler),true);
         }

    }

    private void GenericHandler(object sender, RoutedEventArgs routedEventArgs)
    {
         if (routedEventArgs.RoutedEvent == ButtonBase.ClickEvent || 
            routedEventArgs.RoutedEvent == Selector.SelectionChangedEvent)
        {
            //Here you can check for if user is logged on or not. 
        }

    }