- 浏览: 190466 次
- 性别:
- 来自: 广州
文章分类
最新评论
第一步:简单建立两个类,以备修改WebApi的路由方式
第一个类SessionRouteHandler,继承自HttpControllerHandler,并同时实现一下IRequiresSessionState接口,其实IRequiresSessionState是没有内部方法的,因此也不需要写啥。
第二个类SessionControllerRouteHandler,继承自HttpControllerRouteHandler
完成这两个类之后,就可以进行下一步了。
第二步:修改WebApiConfig,给新手提示一下,这个类在Global中可以看到,WebApiConfig.Register(......这里在进行的。一般情况下,在App_Start目录下。由于我们是要让WebApi能获得MVC中Controller中设置的Session,故要重改一下这个配置。
好了,全部完成后可以编译了,这时候,你可以在Controller中按照正常方式建立Session了,例如:
Session["ValidCode"]="Session Test"
那么WebApi中就可以获取到了:
HttpContext.Current.Session["ValidCode"].ToString()
转自:https://www.cnblogs.com/ca47/p/4603701.html
第一个类SessionRouteHandler,继承自HttpControllerHandler,并同时实现一下IRequiresSessionState接口,其实IRequiresSessionState是没有内部方法的,因此也不需要写啥。
public class SessionRouteHandler : HttpControllerHandler,IRequiresSessionState { public SessionRouteHandler(RouteData routeData) : base(routeData) { } }
第二个类SessionControllerRouteHandler,继承自HttpControllerRouteHandler
public class SessionControllerRouteHandler : HttpControllerRouteHandler { protected override IHttpHandler GetHttpHandler(RequestContext requestContext) { return new SessionRouteHandler(requestContext.RouteData); } }
完成这两个类之后,就可以进行下一步了。
第二步:修改WebApiConfig,给新手提示一下,这个类在Global中可以看到,WebApiConfig.Register(......这里在进行的。一般情况下,在App_Start目录下。由于我们是要让WebApi能获得MVC中Controller中设置的Session,故要重改一下这个配置。
//config.Routes.MapHttpRoute( // name: "DefaultApi", // routeTemplate: "api/{controller}/{id}", // defaults: new { id = RouteParameter.Optional } //); //Route上传递Session RouteTable.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new {id = RouteParameter.Optional}).RouteHandler = new SessionControllerRouteHandler();
好了,全部完成后可以编译了,这时候,你可以在Controller中按照正常方式建立Session了,例如:
Session["ValidCode"]="Session Test"
那么WebApi中就可以获取到了:
HttpContext.Current.Session["ValidCode"].ToString()
转自:https://www.cnblogs.com/ca47/p/4603701.html
发表评论
-
枚举类型帮助类 EnumHelper
2019-09-02 11:29 525项目中出现的问题: 项目中会有很多地方用到文字提醒,如果在每个 ... -
C# zip文件解压压缩帮助类
2019-08-30 11:43 589原文: https://www.cnblogs.com/sun ... -
使用ITextSharp对pdf文件打水印
2019-08-19 17:13 787在项目中需要对pdf文件中的部分信息进行遮挡隐藏,于是找到了I ... -
HMAC_SHA1加密
2019-08-16 10:36 987hmacsha1在很多签名计算中都很常用了,这里对两种可能返回 ... -
.NET/java Office组件神器——Aspose.Total 17.x/18.x/19.x破解版+破解补丁下载【转】
2019-07-29 15:22 2685先上大神的网站地址: [url] https://masuit ... -
通过UserAgent判断智能手机(设备,Android,IOS)【转】
2019-07-02 17:51 1047///<summary> /// ... -
8000401a 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码【转】
2019-06-12 17:36 2327服务器使用了word的类库,在使用过程中日志报标题错误 解决 ... -
C#(同步调用、异步调用、异步回调)--转
2019-06-05 12:04 713本文将主要通过“同步调用”、“异步调用”、“异步回调”三个示例 ... -
C# 利用word书签写入自定义数据
2019-05-14 18:08 651原文参考地址: https://www.cnblogs.com ... -
C# 项目中引用office组件后在服务器遇到的问题集锦
2019-02-13 16:03 9541、要在服务器安装相同版本的office完整版程序 本地测试机 ... -
C# word转pdf
2019-01-17 14:55 688写在最前面,如果要部署,服务器需要安装相同版本的office, ... -
C# 操作word
2019-01-17 14:49 526需要单独引入的是COM中的Microsoft Office 1 ... -
给上传的文件生成缩略图(图片和视频)
2018-11-28 17:47 892备注:里面用到的ffmpeg ... -
获取视频文件的截图
2018-11-28 17:36 703视频获取第一帧截图的方法: https://www.cnblo ... -
excel文件转为DataTable
2018-11-02 17:38 1598在人员初始化的时候,通常会用到excel编辑好,导入到数据库中 ... -
DataTable导出excel
2018-11-02 16:36 1153网上有很多关于导出的例子,这里讲一个利用NPOI导出excel ... -
未能加载文件或程序集,System.Net.Http或它的某一个依赖项。系统找不到指定的文件。
2018-10-30 17:21 4789具体的错误描述: 未能加载文件或程序集“System.Net. ... -
将app请求的简单json串转化为字典
2017-11-16 11:18 822通过Newtonsoft的DeserializeObject& ... -
webapi记录请求和返回日志
2017-11-15 17:12 2159需求: 记录每个接口的请求参数及返回参数,方便以后回溯 fi ... -
超过了最大请求长度。System.Web.HttpException
2017-11-13 16:50 2430请在服务器端配置 方法一: 在通过WebSer ...
相关推荐
1. 添加引用:首先,你需要在项目中引用`System.Web`命名空间,因为Session功能是.NET Framework Web应用程序的一部分,而非Web API的核心库。 2. 启用Session状态:在Global.asax.cs文件的`Application_Start`方法...
在默认情况下,WebAPI 不支持Session,但是我们可以通过实现 IRequiresSessionState 接口和重写 RouteHandler 来启用 Session。 首先,我们需要创建一个实现 IRequiresSessionState 接口的类,例如: ```csharp ...
浏览器API提供检查Cookie功能,如JavaScript的`document.cookie`。 2.8 Cookie的读写 - 客户端:使用`document.cookie`进行读写操作。 - 服务端:通过HTTP响应头的`Set-Cookie`字段设置Cookie。 下篇文章将介绍...
1. **启用Session**:在HTTP Handler的类定义中,确保已将`IRequiresSessionState`接口添加到实现的接口列表中。这将允许HTTP Handler访问Session状态。 ```csharp public class MyHttpHandler : IHttpHandler, ...
在.NET Core 6中启用Session,我们需要以下步骤: 1. 添加Session中间件: 在`Startup.cs`文件的`ConfigureServices`方法中,注入`IServiceCollection`,并调用`AddSession`方法来配置Session服务。还需要设置一个...
7. **安全考虑**:使用Redis存储Session数据时,要注意数据的安全性,避免Redis暴露在公网,必要时可启用SSL加密通信,防止Session数据被窃取。 通过以上步骤,可以成功地在多个Web服务器之间共享Session,解决跨域...
首先,我们要安装必要的NuGet包来启用Session功能。这两个关键的包是: 1. `Microsoft.AspNetCore.Session`:这个包提供了ASP.NET Core中的Session中间件和相关的API,用于处理会话状态。 2. `Microsoft.Extensions...
- `SpringSession` 提供了对原生Servlet API的透明支持,以及与Spring MVC的集成,使得开发者无需修改大量代码就能启用Session共享功能。 2. **Redis**: - Redis 是一个高性能的键值数据库,常用于缓存和消息...
它的核心功能是在多个应用服务器之间共享Session,从而打破了传统Session的单服务器局限性。Spring Session支持多种存储机制,包括内存、数据库、Redis等,这里我们重点讨论Redis方案。 **2. Redis作为Session存储*...
5. **代码调整**:在需要操作Session的地方,不再直接使用`HttpServletRequest.getSession()`,而是通过Spring Session提供的API,如`@SessionAttributes`注解。 **使用Nginx实现负载均衡**:Nginx是一个强大的反向...
- 默认情况下,JSP文件支持Session功能。如果需要显式声明支持Session,可以在页面顶部加入 `<%@ page session="true" %>`。 2. **在JSP文件中控制Session**: - 可以在JSP文件中通过EL表达式或JSP脚本的方式访问...
对于Apache Tomcat这样的Web服务器,需要配置Terracotta的连接器(如tc-server.jar)并启用Terracotta Session管理。在`server.xml`配置文件中,添加`<Manager className="org.terracotta.session.tomcat.Tomcat ...
此外,Spring Session 还支持在 RESTful API 中使用 JSON Web Tokens (JWT) 进行会话管理。 3. **配置 Spring Session** 配置 Spring Session 需要在 Spring Boot 应用中添加对应的依赖,并在配置文件中指定会话...
此外,还需要配置一个SessionManager,设置sessionDAO为我们的RedisSessionDAO,并启用session复制策略。这样,当一个服务器接收到新的session时,它会将其保存到Redis,其他服务器可以从Redis中获取并同步这个...
Jedis提供了丰富的API,支持连接池、事务处理、发布/订阅等功能,使得在Java应用中操作Redis变得简单。 2. "commons-pool2-2.0.jar":Apache Commons Pool是一个对象池设计模式的实现,主要用于管理和复用昂贵资源...
在自定义HttpHandler时,如果希望使用Session功能,需要实现`IRequiresSessionState`或`IReadOnlySessionState`接口。这两个接口分别表示需要读写Session状态和只需要读取Session状态。如果没有实现这些接口,系统...
1. **False(禁用模式)**:完全禁用Session功能。 2. **InProc(进程内模式)**:这是默认的Session模式,它将Session数据存储在当前Web服务器的应用程序域的内存中。 3. **StateServer(状态服务器模式)**:在...
4. **启用Session共享** 在Web应用程序的入口类或`web.xml`中,添加过滤器以启用Spring Session: ```java @WebFilter(filterName = "springSessionRepositoryFilter", urlPatterns = "/*") public class ...
配置文件如`server.xml`和`context.xml`也需要相应调整,以启用session复制和设置合适的session超时、复制策略等。 总的来说,理解并配置好Tomcat的session集群共享对于构建高可用、高并发的Java Web应用至关重要。...
3. **配置Tomcat**:在Tomcat的`conf/catalina.properties`文件中,添加以下配置,启用基于Memcached的Session管理器: ``` session.manager=org.apache.catalina.session.PersistentManager session.manager....