在方法中使用Session

本文介绍在ASP.NET中如何通过实现IRequiresSessionState接口并设置[WebMethod(true)]启用Session状态。示例展示了如何在Web Service中增加计数器并保存在Session中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

•ASP.NET中每个请求都由一个IHttpHandler对象来处理
•在处理时要使用Session则需要让Handler对象实现IRequiresSessionState接口
•RestHandlerFactory根据所请求的方法的标记来选择是否启用Session
•启用方法:在WebMethodAttribute中标记
–EnableSession属性设为true


aspx
    <form id="form1" runat="server">
        
<asp:ScriptManager runat="server" ID="ScriptManager1" ScriptMode="Debug">
            
<Services>
                
<asp:ServiceReference Path="Services/EnableSessionService.asmx" InlineScript="true" />
            
</Services>
        
</asp:ScriptManager>    
        
        
<input type="button" value="Add One" onclick="addOne()" />
    
        
<script language="javascript" type="text/javascript">
            function addOne()
            {
                EnableSessionService.AddOne(onSucceeded);
            }
            
            function onSucceeded(result)
            {
                alert(result);
            }
        
</script>        
    
</form>

EnableSessionService.asmx
<%@ WebService Language="C#" Class="EnableSessionService" %>

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
using System.Web.SessionState;

[WebService(Namespace 
= "http://tempuri.org/")]
[WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class EnableSessionService  : System.Web.Services.WebService
{
    [WebMethod(
true)]
    
public int AddOne()
    {
        HttpSessionState session 
= HttpContext.Current.Session;

        
object objValue = session["value"];
        
int value = objValue == null ? 0 : (int)objValue;
        value
++;
        session[
"value"= value;
        
return value;
    }
    
}
WebService方法加上[WebMethod(true)]修饰即可使用session

转载于:https://www.cnblogs.com/timy/archive/2008/04/30/1178272.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值