问题列表 - 第20813页

ASP.net会话cookie丢失或删除

我有一个ASP.NET 2.0站点,在会话中存储用户的ID以表明他们已登录.在某些情况下,用户似乎没有保持登录状态.我一直在监视Fiddler中的流量,以及一些细节我发现:

  • 在运行IE7和项目经理的笔记本电脑运行IE7时,我的旧笔记本电脑上的问题是100%可重复的.在运行FF的当前笔记本电脑上运行IE7或任何这些笔记本电脑时,问题都不会发生.
  • 问题仅发生在生产中 - 而不是在开发,内部分段或客户端分段上.生产是唯一的负载平衡环境,但上面提到的可重复性使我怀疑负载平衡是一个因素.
  • 当设置Session("ID")= 1的页面将响应发送回客户端时,我可以在所有情况下看到"Set-Cookie"标题,即创建ASP.Net_Session_Id cookie(并且它是HttpOnly).
  • 对服务器的后续请求将在未显示问题的计算机上的标头中发送该cookie,但不在计算机上发送,因此要么删除cookie,要么忽略"Set-Cookie"标头.
  • 登录的方式如下:www.DomainX.com上的页面有一个iframe.iframe的来源是login.DomainY.com上的一个页面.login.DomainY.com提供的各种页面引导用户完成登录/注册过程.login.DomainY.com的最后一步是重定向到www.DomainX.com上的页面,包括查询字符串中的用户ID.www.DomainX.com上的此页面通常将ID存储在会话中,然后运行一些JS以将顶级文档重定向到新页面,从而将用户从iframe中取出.这是一个已经工作了几年的过程,具有DomainX.com的几个值.这里可能有所不同的一点是,在这种情况下,JS只是破坏iframe而某些包含div.
  • 我发现问题发生的情况与不存在问题的情况之间的另一个区别在于Google Analytics(分析)Cookie.login.DomainY.com/FinalStep.aspx将其重定向到iframe内的www.DomainX.com/SaveTheID.aspx有所不同.如果没有出现此问题,SaveTheID.aspx请求会包含各种Google Analytics Cookie(__ utma,__ utmz等).当问题确实发生时,此请求不包括所有GA cookie(它缺少__utma,__ utmz和__utmb).
  • 生产是login.DomainY.com在SSL下运行的唯一环境,所以我认为这可能是相关的.但我们暂时设置login.DomainY.com的暂存副本以使用SSL,但这没有任何效果.

有什么想法会导致这种情况吗?

编辑:生产环境包含www.DomainX.com和DomainX.com的域.还存在另一个已知问题,即没有为这两个域设置cookie.这可能是相关的,但是在修复产生之前我将无法进行测试.

asp.net cookies session internet-explorer

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

JavaScript:异步加载的脚本,是那些"并行"评估的(竞争条件)吗?

鉴于我异步(!!)使用异步脚本加载器(将脚本标记写入文档的头部然后将下载文件)加载多个JavaScript文件,这些脚本是否并行评估?

<script>
 var script = document.createElement('script');
 script.src = "library1.js";
 document.getElementsByTagName('head')[0].appendChild(script); 
</script>
 <!-- Other Markup -->
<script>
 var script = document.createElement('script');
 script.src = "library2.js";
 document.getElementsByTagName('head')[0].appendChild(script); 
</script>
<!-- Other Markup -->
<script>
 var script = document.createElement('script');
 script.src = "library3.js";
 document.getElementsByTagName('head')[0].appendChild(script); 
</script>
Run Code Online (Sandbox Code Playgroud)

"通常",当HTML文档中有标准脚本标记(正文和头部!?)时,浏览器将停止/完成所有其他活动(下载/页面呈现)并仅处理它遇到的单个脚本标记.这导致"序列化"执行,不会导致任何"竞争条件".

但是通过使用异步加载器技术,插入的脚本标记(在头部中)是否也会导致(最后)到序列化渲染(在下载时),只会评估"当前"脚本或者是否存在其他异步加载的脚本文件将被并行评估,因此容易出现竞争条件?

非常感谢你!!蒂姆

javascript

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

根据内容指定textarea的行数.HTML,Java脚本

嗨我有一个功能,当用户键入时,增加textarea的行数,所以它工作正常.但是当表单将文本带入textarea时,用户没有输入,它不会增加行数,但它只显示开头定义的行数(rows ="1"),因为我需要它是最小的行数.

我不知道是什么的Javascript(无JQuery的)功能应用到文本区域,因此将扩大行号,当用户类型,当形式带来了一个多行文本到textarea的,所以它永远会使用最少的行数.

任何帮助,将不胜感激.

请完全改变我的功能.

例如.

<script type="text/javascript">
function changeTextAreaLength(e){
    var txtLength = e.value.length;
    var numRows = 0 ;
    var arrNewLines = e.value.split("\n");

    for(var i=0; i<=arrNewLines.length-1; i++){
        numRows++;
        if(arrNewLines[i].length > e.cols-5) {
            numRows += Math.floor(arrNewLines[i].length/e.cols)
        }   
    } 
        if(numRows < 1) {
            e.cols = (txtLength % e.cols) + 1 >= e.cols ? ((txtLength % e.cols) + 1) : e.cols ;
        }else{
            e.cols = e.cols ;    
            e.rows = numRows;
        }
}
</script>


<textarea id="textarea1" rows="1" onkeyup="javascript:changeTextAreaLength(this);" />
Run Code Online (Sandbox Code Playgroud)

html javascript textarea

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

枚举字母表的最快方法

我想迭代字母表,如下所示:

foreach(char c in alphabet)
{
 //do something with letter
}
Run Code Online (Sandbox Code Playgroud)

一组字符是最好的方法吗?(感觉很讨厌)

编辑:度量标准是"实现最少的类型,同时仍然可读且健壮"

c# alphabet

70
推荐指数
4
解决办法
6万
查看次数

调用NotifyIcon的上下文菜单

我想让它左键单击NotifyIcon也会导致上下文菜单(使用ContextMenuStrip属性设置)也打开.我怎么做到这一点?我是否必须自己处理Click并找出定位?
编辑:使用trayIcon.ContextMenuStrip.Show()显示菜单结果是一些不良行为:

菜单未显示在同一位置,就像右键单击NotifyIcon一样(看起来您无法将x和y坐标设置为任务栏所在的位置,至少在我正在运行的Windows 7上).它将显示在任务栏上方(不是很大的交易,但一致性会很好).

显示菜单时,任务栏中会添加一个额外的图标.

单击菜单以外的其他位置不会关闭它(如果右键单击以显示上下文菜单,则单击其他位置会自动关闭上下文菜单).

是否可以只调用菜单,但内置的右键单击处理程序正在执行此操作?

c# notifyicon winforms

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

如何从DEV_BROADCAST_DEVICEINTERFACE和设备实例ID获取友好设备名称

我已经使用RegisterDeviceNotification注册了一个窗口,并且可以成功接收DEV_BROADCAST_DEVICEINTERFACE消息.但是,dbcc_name返回的结构中的字段始终为空.我所拥有的结构定义如下:

[StructLayout(LayoutKind.Sequential)]
public struct DEV_BROADCAST_DEVICEINTERFACE
{
    public int dbcc_size;
    public int dbcc_devicetype;
    public int dbcc_reserved;
    public Guid dbcc_classguid;
    [MarshalAs(UnmanagedType.LPStr)]
    public string dbcc_name;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用WM_DEVICECHANGE消息Marshal.PtrToStructureLParam.

这应该有用吗?

或者甚至更好......是否有另一种方法可以在连接时获取设备的名称?

编辑(02/05/2010 20:56GMT):

我发现如何通过执行以下操作来填充dbcc_name字段:

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct DEV_BROADCAST_DEVICEINTERFACE
{
    public int dbcc_size;
    public int dbcc_devicetype;
    public int dbcc_reserved;
    public Guid dbcc_classguid;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst=255)]
    public string dbcc_name;
}
Run Code Online (Sandbox Code Playgroud)

但我仍然需要一种从int dbcc_name获取"友好"名称的方法.它看起来如下:

\?\ USB#VID_05AC&PID_1294​​&MI_00#0#{6bdd1fc6-810f-11D0-BEC7-08002BE2092F}

而我真的只想说"苹果iPhone"(在这种情况下就是设备).

c# winapi guid device-instance-id

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

Blackberry - UI堆栈中要推送的最大屏幕数

有没有人知道我们可以在不调用popscreen()的情况下在UiApplication中推送多少个屏幕,以及每个屏幕类的最大文件大小.

感谢Mintu

memory user-interface blackberry screen

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

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

将"地址分割"列拆分为SQL视图中的单独列

我在表中有一个Address列,我需要在SQL Server 2005的视图中拆分成多列.我需要在换行符chr(10)上拆分列,并且可能有1到4行列中的(0到3行换行).以下是我需要做的几个例子.实现这一目标的最简单方法是什么?

Examples:

Address                 Address1      Address2       Address3            Address4
------------        =   -----------   -----------    -----------------   ---------
My Company              My Company     123 Main St.  Somewhere,NY 12345  
123 Main St.         
Somewhere,NY 12345

Address                 Address1       Address2      Address3      Address4
------------        =   ------------   ----------    -----------   ---------
123 Main St.            123 Main St.
Run Code Online (Sandbox Code Playgroud)

sql database sql-server sql-server-2005

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

将异常从我的服务中抛回客户端是否可以?

我正在使用WSDL编写一个基于Java的服务供.Net客户端使用,我认为当我从客户端收到一个无效值时,我会抛出一个异常,然后我的客户端可以捕获并显示在消息框中对用户(客户端是桌面应用程序).

我想知道是否可以使用这种方法或者是否有更好的方法.

c# java service exception-handling exception

10
推荐指数
2
解决办法
217
查看次数