小编eri*_*len的帖子

如何在ASP.net控制器操作中访问整个查询字符串

我知道如果我有一个像XController/Action?id = 1的url,还有一个action方法

void Action(int id)
Run Code Online (Sandbox Code Playgroud)

将自动从查询字符串中读取id参数.

但是,当我事先没有知道所有参数的名称时,如何访问整个查询字符串.例如:

void Action(QueryStringCollection coll) {
    object id = coll["id"];
}
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?

asp.net-mvc controller query-string

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

将Asp.net应用程序移动到负载平衡的环境中

我有一个在单个服务器上运行良好的应用程序.我的客户现在希望将其转移到负载均衡的环境中.这样做时哪些事情可能会让我感到困惑?

目前我知道

  • 会话状态,和
  • 机器钥匙.

例如,这两个都在这里描述,所以我正在寻找其他的东西.

这些类似的 问题,但第一个解决了一般的负载平衡,我正在寻找迁移指南,第二个解决了一个特定的问题.

asp.net load-balancing

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

FormsAuthenticationTicket到期

我一直在网上搜索,发现许多奇怪的答案,我几乎尝试了所有这些.我的问题是这个.我的登录页面包含:

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddMinutes(min), persistCookie, userid.ToString());
string encTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
cookie.Expires = ticket.Expiration;
Response.Cookies.Add(cookie);

FormsAuthentication.RedirectFromLoginPage(userName, persistCookie);
Run Code Online (Sandbox Code Playgroud)

现在min值是基于每个用户的,可以单独设置,persistCookie也是如此.

根据我的理解,此代码应该导致覆盖web.config中的默认值的可能性.这应该是30分钟.

<authentication mode="Forms">
  <forms loginUrl="~/Default/default.aspx" defaultUrl="~/User/UserMain.aspx"/>
</authentication>
Run Code Online (Sandbox Code Playgroud)

min当前设置为120,并且persistCookie设置为太真.当我登录时,我会在30分钟时超时.(不是会话,所以设置了某个到期日期,因为如果没有设置cookie应该是基于会话的,我也不会得到120分钟,这是一种交易在这里)

我的问题是,为了简化它,我如何将值'min'作为cookie的到期日期?

这可能会变成一件简单的事情,但我现在完全陷入困境,所以任何帮助都会受到影响.

编辑:我将登录逻辑更改为:

FormsAuthenticationTicket fat = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddMinutes(min), persistCookie, userid.ToString());
string encTicket = FormsAuthentication.Encrypt(fat);
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket) { Expires = fat.Expiration });
Response.Redirect(FormsAuthentication.GetRedirectUrl(userName, false));
Run Code Online (Sandbox Code Playgroud)

现在它有效.但我似乎无法弄清楚为什么这会起作用,而不是前一个.故障单创建是一样的,唯一的区别是我在创建HttpCookie时添加了HttpCookie的Expires属性,而不是在创建对象之后.

如果有人有一个很好的解释我都是耳朵!:)

c# asp.net cookies forms-authentication

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

C#/ .NET的惰性流

有谁知道.net中的延迟流实现?IOW,我想创建一个像这样的方法:

public Stream MyMethod() {
    return new LazyStream(...whatever parameters..., delegate() {
        ... some callback code.
    });
}
Run Code Online (Sandbox Code Playgroud)

当我的其他代码调用MyMethod()返回以检索流时,它实际上不会执行任何工作,除非有人实际尝试从该流中读取数据。通常的方法是使MyMethod将stream参数作为参数,但是在我的情况下不起作用(我想将返回的流提供给MVC FileStreamResult)。

为了进一步说明,我正在寻找的是创建一系列分层的转换,因此

数据库结果集=(已转换为)=>字节流=(已链接至)=> GZipStream =(已传递)=> FileStreamResult构造函数。

结果集可能很大(GB),所以我不想将结果缓存在MemoryStream中,可以将其传递给GZipStream构造函数。相反,我想在GZipStream请求数据时从结果集中获取。

.net c# stream lazy-evaluation

4
推荐指数
2
解决办法
3176
查看次数

导入visual studio单元测试的数据

如何在Visual Studio单元测试中使用外部数据文件?如果我尝试将其包含在测试项目中并将"复制到输出目录"设置为true,则仍然无法找到它.

我有的是:

[TestMethod]
public void DoMyTest() {
    using (StreamReader rdr = new StreamReader("MyTestData.txt")) {
        blahblah
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,该文件不存在,所以我得到一个例外.我的测试数据不能很好地映射到XML或CSV,因此使用DataSourceAttribute不是一个可行的选择.

unit-testing visual-studio

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

如果我将日期时间作为浮点数存储在数据库中,有什么可以咬我的?

如果我将日期时间作为浮点数存储在数据库中,有什么可以咬我的?我有一个很好的理由这样做所以不要抱怨:)

编辑:我正在考虑将转换(float,@ thedate)存储在浮点列中.

sql-server datetime

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

Antlr树重写规则

我正在尝试解析一个表达式a IN [3 .. 5[,其中尖括号的方向决定了区间是包含还是排除.我希望将其重写为AST

             NODE-TYPE
                 |
    +------------+-----------+
    |            |           |
 variable  lower-bound  upper-bound
Run Code Online (Sandbox Code Playgroud)

其中NODE-TYPE是BTW_INCLUSIVE,BTW_EXCL_LOWER,BTW_EXCL_UPPER或BTW_EXCL_BOTH之一,具体取决于尖括号的方向.

我有以下解析规则:

interval_expr : expr1=variable IN
                (LBRACKET|RBRACKET)
                expr2=expression DOTDOT expr3=expression
                (LBRACKET|RBRACKET)
                -> ^(BETWEEN $expr1 $expr2 $expr3)
Run Code Online (Sandbox Code Playgroud)

这有效,但它不会创建正确的树节点类型.如何根据匹配的内容选择要创建的节点类型?

parsing antlr

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