会话超时重定向到登录页面在Silverlight
问题描述:
我在Silverlight应用维修器材会议通过web服务(WCF)。 现在我想重定向到登录页面,当用户空闲2分钟/会话过期(2分钟后)。
目前我做这样的:
WCF:
[OperationContract]
public int GetSessionTimeOut()
{
return HttpContext.Current.Session.Timeout;
}
的web.config:
<sessionState timeout ="2" ></sessionState>
Page.xaml.cs
void Welcome_Loaded(object sender, RoutedEventArgs e)
{
SessionService.SLWebServiceClient client = new SessionService.SLWebServiceClient();
client.GetSessionTimeOutCompleted += new EventHandler<SessionService.GetSessionTimeOutCompletedEventArgs>(client_GetSessionTimeOutCompleted);
client.GetSessionTimeOutAsync();
}
void client_GetSessionTimeOutCompleted(object sender, SessionService.GetSessionTimeOutCompletedEventArgs e)
{
int result = e.Result;
}
怎么办在这一步之后?
答
App.Current.RootVisual = new LoginPage();
但是它将如何知道用户是空闲2分钟不是会话必须过期并重定向到登录页面? – user662285 2011-04-11 03:44:48
您可以订阅确定用户活动的事件f.i. MouseMove事件。启动计时器,并在每个用户活动上重置它,如果用户的活动间隔为2分钟,则应更改root可视化(如果使用Navigation Framework,则可以重定向用户)。但我建议仅在asp.net会话过期时在登录页面上重定向用户。 – 2011-04-11 07:16:06
如何检查asp.net会话是否过期 – user662285 2011-04-11 08:58:27