问题列表 - 第48538页

处理ajax调用中的会话超时

我正在使用jquery对asp.net mvc控制器动作进行ajax调用:

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult GetWeek(string startDay)
        {
            var daysOfWeek = CompanyUtility.GetWeek(User.Company.Id, startDay);
            return Json(daysOfWeek);
        }
Run Code Online (Sandbox Code Playgroud)

当会话超时时,此调用将失败,因为User对象存储在会话中.我创建了一个自定义authorize属性,以检查会话是否丢失并重定向到登录页面.这适用于页面请求,但它不适用于ajax请求,因为您无法从ajax请求重定向:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
    public class AuthorizeUserAttribute : AuthorizeAttribute
    {
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (!httpContext.Request.IsAjaxRequest())
            {//validate http request.
                if (!httpContext.Request.IsAuthenticated
                    || httpContext.Session["User"] == null)
                {
                    FormsAuthentication.SignOut();
                    httpContext.Response.Redirect("~/?returnurl=" + httpContext.Request.Url.ToString());
                    return false;
                }
            }
            return true;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我在另一个线程上读到,当用户未经过身份验证并且你发出ajax请求时,你应该将状态代码设置为401(未授权),然后在js中检查它并将它们重定向到登录页面.但是,我不能让这个工作:

protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (Request.IsAjaxRequest() && (!Request.IsAuthenticated || User == null))
            {
                filterContext.RequestContext.HttpContext.Response.StatusCode = 401;
            }
            else
            {
                base.OnActionExecuting(filterContext);
            } …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc jquery authorize-attribute asp.net-mvc-3

56
推荐指数
4
解决办法
7万
查看次数

从另一个打开php文件

如何在不使用动作方法的情况下从另一个php文件重定向(打开)一个php文件?

php

-3
推荐指数
1
解决办法
3222
查看次数

如何添加XML标记,具体取决于Scala中的选项?

根据选项添加XML属性相关,我想根据选项在Scala中添加XML标记.

scala> def toXml(value1: String, value2: Option[String]) =
     | <body>
     |   <tag1>{value1}</tag1>
     |   {value2 map (x => <tag2>{x}</tag2>) flatten}
     | </body>
toXml: (value1: String,value2: Option[String])scala.xml.Elem
Run Code Online (Sandbox Code Playgroud)

如果选项存在:

scala> toXml("value1", Some("value2"))
res1: scala.xml.Elem =
<body>
  <tag1>value1</tag1>
  <tag2>value2</tag2>
</body>
Run Code Online (Sandbox Code Playgroud)

如果选项不存在:

scala> toXml("value1", None)
res2: scala.xml.Elem =
<body>
  <tag1>value1</tag1>

</body>
Run Code Online (Sandbox Code Playgroud)

我想根据选项生成很多标签,我想知道是否可以找到更简洁的解决方案.例如,拉着Elem班的?运算符并像这样使用它(这是一个肮脏的解决方案,因为在调用?运算符之前将Option value2转换为String):

scala> def toXml2(value1: String, value2: Option[String]) =
     | <body>
     |   <tag1>{value1}</tag1>
     |   {<tag2>{value2}</tag2>?}
     | </body>
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

xml scala

6
推荐指数
3
解决办法
2337
查看次数

如何在服务器上验证通过Android电子市场成功购买了应用?

我有一个可接收高级内容的Android应用,我想在服务器端验证该应用是通过Android Market购买的。我可以使用许可服务来检查对应用程序的访问,有没有办法从服务器连接到许可服务?如果没有,我可以使用Google Checkout API数据来验证购买吗?

android android-lvl

5
推荐指数
1
解决办法
1133
查看次数

ORDER BY语句中的等式

假设我想要包含一个where基于两列X和Z 的 子句.然后我按顺序排序(3 * X) + Z DESC.那可能吗?我没能按列顺序找到关于算术的任何内容.

所以声明如下:

SELECT * FROM mySweetTable 
WHERE U LIKE "as%" or V LIKE "as%" 
ORDER BY (3 * X + Z) DESC
Run Code Online (Sandbox Code Playgroud)

sql

3
推荐指数
1
解决办法
2183
查看次数

在C++中没有名称的命名空间

可能重复:
未命名/匿名命名空间与静态函数

我遇到了这段代码

namespace ABC {
namespace DEF {

namespace
{
Run Code Online (Sandbox Code Playgroud)

我希望命名空间后面应该有一些名称,但是这个代码并不是这样.

在C++中允许这样做吗?这个未命名的命名空间的优点是什么?

c++ namespaces

43
推荐指数
1
解决办法
2万
查看次数

Capistrano部署但手动运行迁移

我正在使用Capistrano来部署Rails应用程序.我正在考虑存在数据库更改的情况,因此我不能简单地cap deploy因为迁移需要在代码更新之前运行.我意识到有一个cap deploy:migrations,但这比我想要的更自动一些.我想:

  1. 将新代码推送到版本目录,但不更新符号链接或重新启动应用程序.
  2. ssh进入服务器,运行rake:db_abort_if_pending_migrations以确认我要运行的迁移是唯一的待处理迁移,然后rake db:migrate手动运行.
  3. 完成部署,更新符号链接并重新启动应用程序.

有没有任何简单的方法可以使用内置的Capistrano任务执行此操作,还是需要编写自己的部署步骤来完成此操作?

我还应该提一下,我正在考虑可以在实时数据库上运行迁移的情况(比如添加列).对于更具破坏性的更改,我意识到我需要在部署期间使用维护页面关闭网站.

deployment capistrano ruby-on-rails database-migration

5
推荐指数
1
解决办法
2254
查看次数

SOQL查询WHERE日期= 30_days_ago?

如何制作这样的SOQL查询?

SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

MALFORMED_QUERY: 
Account WHERE LastActivityDate = 30_DAYS_AGO
                      ^
Run Code Online (Sandbox Code Playgroud)

salesforce soql apex-code

7
推荐指数
3
解决办法
4万
查看次数

编译libjingle的问题

我下载并安装了libjingle-0.5.2.zip,并根据README还下载并安装了swtoolkit.0.9.1.zip,scons-local-2.1.0.alpha.20101125.tar.gz和expat-2.0. 1.tar.gz,并通过cvs下载获得nrtp.在覆盖了我的Makefile两次,尝试按照写得很差的自述文件后,我想出了几乎可以工作的以下Makefile:


# First, make sure the SCONS_DIR environment variable is set correctly.
SCONS_DIR ?= /usr/src/scons-local/scons-local-2.1.0.alpha.20101125/
#SCONS_DIR ?= /usr/src/scons-local/
export
default: build
# Second, run talk/third_party/expat-2.0.1/configure...
talk/third_party/expat-2.0.1/Makefile:
    cd talk/third_party/expat-2.0.1 && ./configure
# ...and talk/third_party/srtp/configure.
talk/third_party/srtp/Makefile:
    cd talk/third_party/srtp && ./configure
# Third, go to the talk/ directory and run $path_to_swtoolkit/hammer.sh. Run
# $path_to_swtoolkit/hammer.sh --help for information on how to build for
# different modes.
build: talk/third_party/expat-2.0.1/Makefile talk/third_party/srtp/Makefile
    cd talk && ../../swtoolkit/hammer.sh
help:
    ../swtoolkit/hammer.sh --help
Run Code Online (Sandbox Code Playgroud)

但是,make给我以下错误:

jcomeau@intrepid:/usr/src/libjingle-0.5.2$ make
cd talk …

python google-code libjingle

8
推荐指数
1
解决办法
4350
查看次数

什么是便携式类库?

在MSDN上,我Portable Class Library在版本信息下注意到有关a的部分.

请参阅System.Object示例.http://msdn.microsoft.com/en-us/library/system.object.aspx

我做了一个简短的谷歌搜索,找不到任何关于Portable Class Library.这里有谁知道它是什么或在哪里可以找到更多相关信息?

.net portable-class-library

107
推荐指数
3
解决办法
5万
查看次数