1,配置你的IIS应用程序池为集成模式。
经典模式是将请求分别走了不同的管线,所以对于html/js等静态请求是无法触发sessionStart的,而集成模式会将请求(不管是不是html)都会走w3p的,形成一个统一的管线,这种情况下html才有机会触发sessionStart事件的。
2, 配置你的Gloalasax文件,在sessionStart事件中先定义一个session变量。
正常情况下,aspx等请求,如果在没有登陆的情况下,sessionID是一直在变化的。但不是说没有会话,而是每次会话都是独立的会话,其实sessionID并未固定,这种情况下,你无法获知上次获得的会话的任何信息。
3, html只是标签,并不能直接使用session会话,使用其他手段协助获得会话信息。
A,考虑使用ashx页面处理会话,以便ajax请求。
B,可以考虑使用web api方式,并在web api接口中添加ISession接口实现会话。
C,可以考虑使用使用管线事件处理,并支持会话。如在webconfig中配置订阅会话处理事件,然后引入到webconfig中的handler/module模块中。
前两个步骤只是保证你的会话可用,第三步是怎么使用你会话中的信息。如果你对aspnet编程十分熟悉,且对IIS经典管线与集成管线,和IIS处理的过程中的订阅事件十分熟悉,那么这不应该是一个难事。比如你做过富客户端处理时,会话保持显然是一个轻而易举的事。
session是不需要ajax把 直接在ashx文件里面就可验证
你应该是获得文本框里面的验证吗,用ajax发给ashx文件。使用jQuery很方便
注意上一楼说的没有添加引用是用不了session的
Session 对象用于存储用户的信息。存储于 session 对象中的变量持有单一用户的信息,并且对于一个应用程序中的所有页面都是可用的 <% SessionTimeout=5 ' 生存期 SessionAbandon ' 结束 Session("username")="Donald Duck" '赋值 Session("age")=50 '赋值 ResponseWrite(Session("username")) '调用 SessionContentsRemoveAll() '终止 %>
我说原理
用AJAX
js里面你用AJAX发数据另外一个Ashx页面(如 pathashx) 然后在pathashx中返回你要的字符串
然后你就可以在js里面得到ajax返回的数据了
ashx为扩展名的文件即ASPNET中的一般处理程序。要知道Session并不是存在于某个页面中的,是存活于应用程序中的。应用程序永动后当保存或创建了一个Session值时,该Session将默认存活于应用程序中20分钟。所以在一般处理程序中保存的Session值,可以在同一个项目下的其它页面访问的。
以上就是关于Html页面在调用web方法的过程中要如何启动Session会话全部的内容,包括:Html页面在调用web方法的过程中要如何启动Session会话、C#中ajax怎么提交session验证码到ashx文件去校验验证码、使用asp.net,怎么使用session,我的程序是在app_code中的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)