小编Mik*_*nes的帖子

"对象可以不止一次处理"错误

当我在下面的代码块上运行代码分析时,我收到以下消息:

对象'stream'可以在方法'upload.Page_Load(object,EventArgs)'中多次处理.为避免生成System.ObjectDisposedException,不应在对象上多次调用Dispose.

using(var stream = File.Open(newFilename, FileMode.CreateNew))
using(var reader = new BinaryReader(file.InputStream))
using(var writer = new BinaryWriter(stream))
{
    var chunk = new byte[ChunkSize];
    Int32 count;
    while((count = reader.Read(chunk, 0, ChunkSize)) > 0)
    {
        writer.Write(chunk, 0, count);
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它可能被调用两次,以及如何修复它以消除错误.有帮助吗?

c# dispose

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

仅客户端Cookie

我需要类似cookie的东西,但我特别不希望它回到服务器.我称之为"客户端会话cookie",但任何合理的机制都会很棒.

基本上,我想在服务器上存储一些加密的数据,并让用户在浏览器中输入密码.浏览器使用密码解密数据(或使用密码创建和加密数据),服务器仅存储加密数据.为了保证服务器上的数据安全,服务器不应该存储并且永远不应该接收密码.理想情况下,应该有一个cookie会话到期以进行清理.

当然,当用户浏览网站时,我需要在多个页面上提供它.

我能想出的最好的是某种iframe机制来将数据存储在javascript变量中,但这很难看.有没有人有任何想法如何实现这样的事情?

FWIW,平台是ASP.NET,但我认为不重要.它需要支持广泛的浏览器,包括移动设备.

在回答下面的一个答案时,让我澄清一下.我的问题不是如何实现加密,这不是问题.问题是存储密码的位置,以便它在页面之间是持久的,但不会超出会话,并且服务器不会看到它.

html javascript cookies

7
推荐指数
2
解决办法
6654
查看次数

在LINQ中更新对象

我想在Linq做一个更新.

public myFunc(MyItem newItem)
{
  using(var db = new myDataContext())
  {
     var item = (from o in db.myTable where o.id == myId select o).First();
     item = newItem;
     db.SubmitAllChanges();
  }
}
Run Code Online (Sandbox Code Playgroud)

这不会更新对象,我猜item = newItem更改项目以引用另一个.如果我更改了各个字段(item.Name = newItem.Name等),则会反映出更改,但我不想将MyItem类的内容分散到多个位置以降低可维护性.有没有办法在逐个字段的基础上制作item = newItem副本?

MyItem也与另一个表有关系,我想将newItem中的下级项更新为item.(FWIW,没有添加或删除,只是更新.)是否有标准化的流程来执行此操作?

谢谢你的帮助.

c# linq asp.net

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

ASP.NET"Keep Me Logged In"无法在一台计算机上运行

我有一个ASP.NET站点,它使用标准的向导创建登录控件.我没有改变它.

登录工作正常,但是,Keep Me Logged On的单台计算机不起作用,每次重新启动浏览器时它都会强制我登录.这只发生在一台计算机上(在另外三台计算机上运行正常),它只发生在Internet Explorer(8.0版本,在Firefox中应该正常工作).

我假设它是IE中的一些配置设置,但我搜索并搜索无济于事.有人对我有建议吗?

asp.net login-control

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

标签 统计

asp.net ×2

c# ×2

cookies ×1

dispose ×1

html ×1

javascript ×1

linq ×1

login-control ×1