asp.net 单点登录

春风十里_ 2013-07-10 03:26:48
我是用一个timer不断更新用户的操作时间,然后和系统时间对比,如果超出了固定时间则将其转到登录界面;
现在遇到一个问题,由于是在webservice.asmx中做的判断,在判断超出之后无法跳转,求指导
webservice.asmx代码



...全文
162 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
饕餮123 2013-07-10
  • 打赏
  • 举报
回复
话说asp.net用timer控件很坑爹的好不!会自动被垃圾处理器给回收掉的。
饕餮123 2013-07-10
  • 打赏
  • 举报
回复
引用 4 楼 TuiFeiYiLuoMuZuo 的回复:
[quote=引用 3 楼 a407121393 的回复:] [quote=引用 2 楼 TuiFeiYiLuoMuZuo 的回复:] [quote=引用 1 楼 yumenjianke 的回复:] 考虑把数据和行为分开来处理,WebService只处理数据,具体不同数据要做不同的操作交给WebService的调用方。
但我webservice的调用方是Global.asax,代码是这样的
protected void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));

            WebServiceSso WebSso = new WebServiceSso();
            WebSso.SsoStart();

            //log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(@Server.MapPath("~/log4net.config")));
        }
[/quote] 在webservice里是没法控制用户页面跳转的 一个可行的做法是:前台用ajax不断的轮询后台webservice,然后webservice返回用户是否超时,超时的话前台可以跳转top.location.href=xxxxxxxx[/quote] 我在界面加了个timer,不断轮训时间,代码如下
protected void Timer1_Tick(object sender, EventArgs e)
        {
            WebServiceSso sso = new WebServiceSso();
            sso.UpdateMyTime(Session["UserName"].ToString());
        }
然后你说的,能给点代码提示吗[/quote] 额,你这。。。 我意思是让你在前台用js不断的ajax访问后台服务返回用户状态,根据返回的值判断是不是要跳转页面奥 jquery的做法,当然这段应该是用settimeout做一个轮询的

$.get("你的返回用户状态的url地址",function(userstatus){
    if(userstatus=="1"){
       //假设1的时候是用户要跳转了
       top.location.href="login.aspx";
    }
});
yy2433720 2013-07-10
  • 打赏
  • 举报
回复
每个webserver 方法前面要加个特性的
yy2433720 2013-07-10
  • 打赏
  • 举报
回复
我有点怀疑,你那个webserverice的方法能调用的到吗,
零点逸族 2013-07-10
  • 打赏
  • 举报
回复
引用 4 楼 TuiFeiYiLuoMuZuo 的回复:
[quote=引用 3 楼 a407121393 的回复:] [quote=引用 2 楼 TuiFeiYiLuoMuZuo 的回复:] [quote=引用 1 楼 yumenjianke 的回复:] 考虑把数据和行为分开来处理,WebService只处理数据,具体不同数据要做不同的操作交给WebService的调用方。
但我webservice的调用方是Global.asax,代码是这样的
protected void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));

            WebServiceSso WebSso = new WebServiceSso();
            WebSso.SsoStart();

            //log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(@Server.MapPath("~/log4net.config")));
        }
[/quote] 在webservice里是没法控制用户页面跳转的 一个可行的做法是:前台用ajax不断的轮询后台webservice,然后webservice返回用户是否超时,超时的话前台可以跳转top.location.href=xxxxxxxx[/quote] 我在界面加了个timer,不断轮训时间,代码如下
protected void Timer1_Tick(object sender, EventArgs e)
        {
            WebServiceSso sso = new WebServiceSso();
            sso.UpdateMyTime(Session["UserName"].ToString());
        }
然后你说的,能给点代码提示吗[/quote]说了这么多,楼主怎么就不开窍呢,意思就是说你的WebService要返回用户是否超时的状态,这样的话,WebService就可以只管数据了,而不用考虑是否超时要做什么操作的行为
春风十里_ 2013-07-10
  • 打赏
  • 举报
回复
引用 3 楼 a407121393 的回复:
[quote=引用 2 楼 TuiFeiYiLuoMuZuo 的回复:] [quote=引用 1 楼 yumenjianke 的回复:] 考虑把数据和行为分开来处理,WebService只处理数据,具体不同数据要做不同的操作交给WebService的调用方。
但我webservice的调用方是Global.asax,代码是这样的
protected void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));

            WebServiceSso WebSso = new WebServiceSso();
            WebSso.SsoStart();

            //log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(@Server.MapPath("~/log4net.config")));
        }
[/quote] 在webservice里是没法控制用户页面跳转的 一个可行的做法是:前台用ajax不断的轮询后台webservice,然后webservice返回用户是否超时,超时的话前台可以跳转top.location.href=xxxxxxxx[/quote] 我在界面加了个timer,不断轮训时间,代码如下
protected void Timer1_Tick(object sender, EventArgs e)
        {
            WebServiceSso sso = new WebServiceSso();
            sso.UpdateMyTime(Session["UserName"].ToString());
        }
然后你说的,能给点代码提示吗
饕餮123 2013-07-10
  • 打赏
  • 举报
回复
引用 2 楼 TuiFeiYiLuoMuZuo 的回复:
[quote=引用 1 楼 yumenjianke 的回复:] 考虑把数据和行为分开来处理,WebService只处理数据,具体不同数据要做不同的操作交给WebService的调用方。
但我webservice的调用方是Global.asax,代码是这样的
protected void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));

            WebServiceSso WebSso = new WebServiceSso();
            WebSso.SsoStart();

            //log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(@Server.MapPath("~/log4net.config")));
        }
[/quote] 在webservice里是没法控制用户页面跳转的 一个可行的做法是:前台用ajax不断的轮询后台webservice,然后webservice返回用户是否超时,超时的话前台可以跳转top.location.href=xxxxxxxx
春风十里_ 2013-07-10
  • 打赏
  • 举报
回复
引用 1 楼 yumenjianke 的回复:
考虑把数据和行为分开来处理,WebService只处理数据,具体不同数据要做不同的操作交给WebService的调用方。
但我webservice的调用方是Global.asax,代码是这样的
protected void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));

            WebServiceSso WebSso = new WebServiceSso();
            WebSso.SsoStart();

            //log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(@Server.MapPath("~/log4net.config")));
        }
零点逸族 2013-07-10
  • 打赏
  • 举报
回复
考虑把数据和行为分开来处理,WebService只处理数据,具体不同数据要做不同的操作交给WebService的调用方。

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧