会话ID自定义
Tcell支持帐户收购,这是一个主要和常用的情况。根据策略,TCell使用会话ID作为检测帐户收购的参数之一。
在大多数情况下,TCell代理将自动检测应用程序使用的会话ID,而无需自定义。但是,有时应用程序自定义其会话ID处理,因此,标准cookie会话不合适。对于使用.NET核心代理时的这种情况,客户可以编写自定义lambda.并将其传递给UsetCellSessionID中间件函数,如下所示:
          
           UsetcellsessionId使用
            
           
          
           
            
             1
            public 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.
            //添加逻辑以提取会话ID
           
           
            
             20.
            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.
            
           
        
         这个页面对你有帮助吗?