我有一个在OWIN进程中托管的示例Web API(自托管,而不是在IIS中).我在我的控制器中获得了一个JWT令牌,我希望能够在应用程序的另一部分中进行检索,这是一个实现NserviceBus IMutateOutgoingTransportMessages的类.在我的其他Web应用程序POC(在IIS中托管)中,我使用了一个简单的会话变量,它工作得很好.但我想知道在我的新OWIN自托管环境中最好的方法是什么?静态类中的静态属性?
我需要从页面到页面发送几个变量...这样做的最佳方法是什么?
只需逐个发送:
string var1 = Session["var1"] == null ? "" : Session["var1"].ToString();
int var2 = Session["var2"] == null ? 0 : int.Parse(Session["var2"].ToString());
Run Code Online (Sandbox Code Playgroud)
等等...
或者将它们全部放在某种容器对象中?
struct SessionData
{
public int Var1 { get; set; }
public string Var2 { get; set; }
public int Var3 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
-
SessionData data = Session["data"] as SessionData;
Run Code Online (Sandbox Code Playgroud)
什么是最好的解决方案?你用什么?
我看到了如何为rails 3设置会话的一个很好的答案(Rails会话当前实践)
我们从用户那里收集了一系列问题,我想在会议中保留他们的答案列表,直到我们结束然后全部写完......
但我不确定如何从会话中写入和读取信息......任何快速指针都会被理解为如何保存,例如,哈希的内容
此外,我们的应用程序托管在Heroku的网格上是否会改变我们可以/应该如何处理会话?
干杯,JP
我对ASP.NET 2.0上的会话有一个非常奇怪的问题.我正在使用的系统使用会话变量来存储对象的参数(如问题和答案),以生成报告.这些是具有相同名称的类的实例,因此它们使用如下参数填充:
此报告是通过4个aspx页面生成的.首先定义位置和日期参数,第二页存储问题,第三个存储答案.最后一个显示Excel和HTML格式的生成报告的链接.所有可变数据都存储在会话中,一切顺利,直到最后一页,当发生Session.Abandon()之类的事情时,会触发Session_End事件并且所有变量都会丢失.这种情况每天只有一次,每个登录的用户在第一次使用的报告,然后你可以尝试了整整一天了数十次,将不会再看到它.
问题始终发生在同一页面上,会话模式为InProc.
我已经完成了以下验证:
以下限制适用:
任何想法或解决方案都有帮助.我将保持联系以进行任何必要的更新和测试.
asp.net session visual-studio-2005 web-config session-variables
我是codeigniter的新手.我使用登录表单作为管理员登录.当管理员使用正确的用户名和密码登录时,他/她被引导到带有会话变量的主页.然后,如果他点击退出按钮,会话应该被销毁并将用户重定向到登录页面即登录表单页面.
第一个控制器是管理员:
<?php
class Admin extends CI_Controller
{
function index()
{
$data['main_content'] = 'admin/log_in';
$this -> load -> view('includes/admin/admin_template', $data);
}
function log_in()
{
$this->load->model('admin_model');
$query = $this -> admin_model -> validate();
if ($query)// if the user's credentials validated...
{
$data = array('user_name' => $this -> input -> post('user_name'), 'is_logged_in' => true);
$this -> session -> set_userdata($data);
redirect('admin/home/admin_home');
} else// incorrect username or password
{
$this -> index();
}
}
function log_out()
{
$this->session->sess_destroy();
redirect('/admin/admin','refresh');
}
}
Run Code Online (Sandbox Code Playgroud)
第二个控制器是家庭控制器:
<?php
class …Run Code Online (Sandbox Code Playgroud) 如果我将值存储在会话变量中
Session["Int"] = 100;
Run Code Online (Sandbox Code Playgroud)
它在Session_End事件中会是什么?它会是null还是100?
void Session_End(object sender, EventArgs e)
{
object objInt = Session["Int"]; // Null or 100 ?
}
Run Code Online (Sandbox Code Playgroud)
意思是,Session_End会在会话中或之前处理所有内容后触发吗?
我正在使用最新的Flask/Werkzeug(Flask 0.9)客户端会话来保持请求之间的信息.会话未设置为持久性(因为我很好,当浏览器关闭时cookie被删除).
我的问题如下:
我使用一些服务器端代码用条目填充Flask会话变量.在此之后,Session变量看起来像这样:
<SecureCookieSession {u'items': SOMENOTVERYIMPORTANTDICTIONARY}, '_fresh': True, 'user_id': u'1', 'csrf': '0aef1995cdf2cxx0233fdf3321d17fc7267f3b32', '_id': 'someUNIQUEcode'}*>
Run Code Online (Sandbox Code Playgroud)
我使用这些信息将一个执行GET请求的页面(通过JQuery)呈现给同一个Flask应用程序,但突然间会话中包含"items"条目的字典消失了:
<SecureCookieSession {'_fresh': True, 'user_id': u'1', 'csrf': '0aef1995cdf2cxx0233fdf3321d17fc7267f3b32', '_id': 'someUNIQUEcode'}>
Run Code Online (Sandbox Code Playgroud)
我做了一些搜索,并认为这可能与我在localhost上测试的事实有关(127.0.0.1与localhost不同).我修复了我的hosts文件并添加了一个'dev.localhost'条目,以确保所有请求都来自同一主机.
此外,我的浏览器(Chrome)的开发人员窗格显示与发送到服务器的会话cookie完全相同的标识符.
此外,设置session.modified = True没有帮助.
请求之间唯一的变化是
__utmb=122666782.18.10.1363877633
Run Code Online (Sandbox Code Playgroud)
对于第一个请求(填充items条目的请求)与第二个请求
__utmb=122666782.19.10.1363877633
Run Code Online (Sandbox Code Playgroud)
认为它仍然可能是与Ajax相关的东西.我在简单的页面重新加载后测试了会话变量的内容:该items条目仍然从会话中消失.
任何帮助将不胜感激.
我想知道是否可以在没有任何控制器代码的情况下从Thymeleaf模板中检索会话对象并访问其属性.
是否可以在laravel 5 Session中保存php对象,对象集合?
我正在尝试,但我得到了错误
Serialization of 'Closure' is not allowed vendor/illuminate/session/Store.php line 255
Session::put('my_php_object', $obj );
Session::save();
public function onRun()
{
$this->addCss('assets/css/custom.css');
$this->socialite_providers = $this->page['socialite_providers'] =$this->providersList();
//check for provider param in url
if($provider = $this->param('provider')){
$this->setSessionProvider($provider);
$this->provider = $provider;
$this->callback_url = preg_replace('~.*\K:(.*)~s','',Request::root().$this->page->url);
$this->request = $this->createRequest($provider);
Session::save();
return $this->request->redirect();
}
//Authorize user if Request has code
if(Request::has('code')){
if(!$this->getSession())
return;
//reuse save session
}
}
public function createRequest($provider)
{
$instance = Socialite::driver($provider);
$init = $this->injectCredentials($instance, $provider);
$this->setSession($init);
return $init;
}
public function …Run Code Online (Sandbox Code Playgroud) 我一直在阅读(mysql)触发过去几天...特别是我想要做的是找出一个更新用户信息的好方法.
用于此的案例与用户管理系统有关:
例如,admin用户将用户更新regular为a manager,此用户type更改将enable|disable接口上的软件功能.
问题:type除非您查询数据库并重置例如$_SESSION['user']['type']变量和/或用户登录系统,否则
您将不会知道此用户更改.
问题:有没有什么好方法可以解决这个问题?