我存储在HttpContext.Current.Session当前用户中,SiteUser是单音类,它呈现当前活动的siteuser,当他记录我在控制器中创建新的SiteUser()并在构造函数中将他添加到会话中:
public static SiteUser Create()
{
HttpContext.Current.Session[sessionKey] = new SiteUser();
return HttpContext.Current.Session[sessionKey] as SiteUser;
}
Run Code Online (Sandbox Code Playgroud)
然后,对于服务器服务的每个请求,我检查用户是否在会话中可用:
public static SiteUser Current
{
get
{
if (HttpContext.Current.Session == null || HttpContext.Current.Session[sessionKey] == null)
{
throw new SiteUserAutorizationExeption();
}
return HttpContext.Current.Session[sessionKey] as SiteUser;
}
}
Run Code Online (Sandbox Code Playgroud)
否则我将生成非auth用户异常并将其重定向到登录页面.但有时HttpContext.Current.Session [sessionKey]为null,但HttpContext.Current.Session不为null且FormsAuthenticationTicket可用且Expired属性也为false.有人可以帮助我,为什么HttpContext.Current.Session [sessionKey]可以为空?
UPD:webconfig会话设置:<sessionState mode="InProc" timeout="20" />
UPD:sessionKey是:public const string sessionKey = "SiteUser";
UPD2:我忘了添加,在会话中还存储了文化设置:
HttpContext.Current.Session["Culture"]
Run Code Online (Sandbox Code Playgroud)
当异常命中时,HttpContext.Current.Session [sessionKey]为null,culture-item不是
UPD3:我已下载源.NET Framework的符号表,并在更改集合项时在SessionStateItemCollection上设置断点.我解决了一些错误:1)所有的收集项都是空的 - "文化"正在设置2)它发生在会话结束事件我无法理解它是怎么回事,因为在web.config会话超时设置为20
我们知道,选中的孩子的默认位置在中间.但我想在画廊的左边显示它.如何做到这一点.
谢谢〜
我是大规模服务器端开发的新手.我想使用Node.js编写一个服务器,但在我开始之前,我想知道将节点扩展到每秒20个查询的一般原则是什么.
我正在编写的服务主要是数据库的接口,以及输入数据的认证和验证.
我想做一些相当简单的事情我相信:
1)仅当该值尚未存在时才在数组字段中插入值
2)删除数组中存在的值
我只是不知道如何做这些事情......目前我只是插入我的值而不检查它是否已经存在:myArray << obj.id
谢谢,
亚历克斯
ps:使用Rails 3.0.3,mongo 1.1.5和mongoid 2.0.0.rc5
ps2:这是实现我想要的mongodb语法,但我不知道如何在mongoid中做到这一点
{ $addToSet : { field : value } }
Run Code Online (Sandbox Code Playgroud)
仅当数组不在数组中时才添加值,如果field是现有数组,否则在字段不存在时将字段设置为数组值.如果字段存在但不是数组,则会引发错误情况.
添加许多valuest.update
{ $addToSet : { a : { $each : [ 3 , 5 , 6 ] } } }
$pop
{ $pop : { field : 1 } }
Run Code Online (Sandbox Code Playgroud)
删除数组中的最后一个元素(1.1中的ADDED)
{ $pop : { field : -1 } }
Run Code Online (Sandbox Code Playgroud)
删除数组中的第一个元素(1.1中的ADDED)|
我有一个专门用于管理员的应用程序.
我想在每次创建/修改新对象时发送一封电子邮件,从我的搜索开始,似乎使用post_save是最好的方法.
不幸的是,文件并不是很明确......
有人可以解释一下吗>也许有一个例子吗?
谢谢
该网站仅提到缓和选项:
# easing: Name of the easing equation.
Run Code Online (Sandbox Code Playgroud)
但没有例子.
如何使用此功能?
需要你在一个不寻常的情况下提供帮助.我需要修剪所有$ _POST变量.
有什么方法可以一次性完成,即使用单一功能吗?
我知道修剪($ _ POST)不会做,我必须做一些功能
function sanatize_post(){
foreach ($_POST as $key => $val)
$_POST[$key] = trim($val);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您有任何其他建议或评论,请帮助我.
谢谢
我在我的项目中使用MVC 3,我看到一种非常奇怪的行为.
我正在尝试为我的模型上的特定值创建一个隐藏字段,问题是由于某种原因,字段上设置的值与模型中的值不对应.
例如
我有这个代码,就像测试一样:
<%:Html.Hidden("Step2", Model.Step) %>
<%:Html.HiddenFor(m => m.Step) %>
Run Code Online (Sandbox Code Playgroud)
我认为两个隐藏的字段都具有相同的值.我所做的是,第一次显示View时将值设置为1,然后在提交后我将Model字段的值增加1.
因此,第一次渲染页面时,两个控件的值都是1,但第二次渲染的值是:
<input id="Step2" name="Step2" type="hidden" value="2" />
<input id="Step" name="Step" type="hidden" value="1" />
Run Code Online (Sandbox Code Playgroud)
如您所见,第一个值是正确的,但第二个值似乎与我第一次显示View时相同.
我错过了什么?*For Html助手是否以某种方式缓存值?如果是这样,我该如何禁用此缓存?
谢谢你的帮助.
其中一个面试问题让我"编写一个C函数的原型,它采用了16个整数的数组",我想知道它可能是什么?也许像这样的函数声明:
void foo(int a[], int len);
Run Code Online (Sandbox Code Playgroud)
或者是其他东西?
那么如果语言是C++呢?