会话ID自定义
Tcell支持帐户收购,这是一个主要和常用的情况。根据策略,TCell使用会话ID作为检测帐户收购的参数之一。
在大多数情况下,TCell代理将自动检测应用程序使用的会话ID,而无需自定义。但是,有时应用程序自定义其会话ID处理,因此,标准cookie会话不合适。对于使用.NET核心代理时的这种情况,客户可以编写自定义lambda.并将其传递给UsetCellSessionID中间件函数,如下所示:
UsetcellsessionId使用
1public iapplicaticalbuilder usetcellsessionId(这个iapplicaticalbuilder应用程序,func操作);
来自Lambda的返回类型(String)将是自定义会话ID。另请注意中间件是.NET核心中间件组件,并应使用标准.NET核心配置服务启动配置方法。
例子
虽然您可以使用任何形式的上下文操作,但在TCell在会话ID结束时删除动态盐时,会发生以下使用情况。在此示例中,具有自定义Lambda的启动类的部分片段检索cookie“abc”的会话ID,并在连字符“ - ”之前从字符串的开头处。
示例会话处理片段
1使用Microsoft.extensions.Configuration;2使用tcell.agent.aspnetcore;3.......4.5.公共类初创公司{6.7.......8.9.Public Void Configure(IAPplicationBuilder应用程序,ihostingenvironment Env)10.{11.12.if(env.isdevelopment())13.{14.app.useveloperexceptionpage();15.}16.17.app.usestaticfiles();18.19.//添加逻辑以提取会话ID20.app.usetcellsessiond(context => getthecustomsessionId(上下文));21.22.app.usemvc(路由=>23.{24.routes.maproute(25.名称:“默认”,26.模板:“{controller = home} / {action = index} / {id?}”);27.});28.}29.30.31.Private Const String CustomSessionKey =“ABC”;32.私有字符串getthecustomsessiond(httpcontext ctxt)33.{34._logger.loginformation(“从上下文获取会话”);35.var cookievalue = ctxt.request.cookies [customsessionkey];36.37.var prefix = cookievalue.split(“ - ”)。第一();38.返回前缀;39.}40.41.42.}43.
这个页面对你有帮助吗?