问题列表 - 第1266页

文件下载(IE)上的文件名损坏

我已经实现了一个简单的文件上传下载机制.当用户单击文件名时,将使用以下HTTP标头下载该文件:

HTTP/1.1 200 OK
Date: Tue, 30 Sep 2008 14:00:39 GMT
Server: Microsoft-IIS/6.0
Content-Disposition: attachment; filename=filename.doc;
Content-Type: application/octet-stream
Content-Length: 10754
Run Code Online (Sandbox Code Playgroud)

我也支持日文文件名.为此,我用这个java方法编码文件名:

private String encodeFileName(String name) throws Exception{
    String agent = request.getHeader("USER-AGENT");
    if(agent != null && agent.indexOf("MSIE") != -1){ // is IE
        StringBuffer res = new StringBuffer();
        char[] chArr = name.toCharArray();
        for(int j = 0; j < chArr.length; j++){
            if(chArr[j] < 128){ // plain ASCII char
                if (chArr[j] == '.' && j != name.lastIndexOf("."))
                    res.append("%2E");
                else
                    res.append(chArr[j]);
            }
            else{ // non-ASCII …
Run Code Online (Sandbox Code Playgroud)

internet-explorer http internationalization http-headers

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

在Web应用程序中绘制/制图的一些好工具集是什么?

在Web应用程序中绘制/制图的一些好工具集是什么?最好是开源/免费软件,特别是用ASP.NET MVC或Silverlight 2.0进行开发.

silverlight model-view-controller charts graph

8
推荐指数
2
解决办法
1197
查看次数

此WebService安全方案存在哪些潜在问题?

我们有一个服务,根据用户名和密码处理授权.我们将其放在SOAP标头中,而不是将用户名和密码作为调用的一部分.

在典型的场景中,Web Service在执行开始时调用Authorization服务以检查是否允许调用者调用它.问题是这些Web服务中的一些相互调用,这意味着在每个子调用中都会检查用户的权限,这可能非常昂贵.

我想做的是让授权服务在第一次调用后返回安全令牌.然后,Web Service可以在本地验证安全标头,而不必每次都调用授权服务.

安全标题看起来像这样(C#代码 - 修剪以说明基本概念):

public sealed class SecurityHeader : SoapHeader
{
    public string UserId;     // Encrypted   
    public string Password;   // Encrypted; Just realized this field isn't necessary [thanks CJP]

    public DateTime TimeStamp;   // Used for calculating header Expiry
    public string SecurityToken;
}
Run Code Online (Sandbox Code Playgroud)

一般的想法是每次调用都会检查SecurityHeader.如果它存在,但尚未过期,并且SecurityToken有效,则Web方法将正常进行.否则它将返回错误,或者它将尝试重新授权并生成新的SecurityHeader

SecurityToken基于UserId,Password和TimeStamp的盐渍哈希.每天更换盐以防止重放.

我看到的一个问题是用户可能有权访问Web服务A,但不能访问Web服务B.如果他调用A并收到安全令牌,就像现在一样,这意味着如果他使用B将让他通过同样的道理.我必须更改它,以便安全令牌仅在从Web服务到Web服务,而不是用户到Web服务,即.如果用户调用A调用B,则应该没有问题,但如果用户调用服务A然后调用服务D则不行.解决方法是将公共密钥(或一组密钥)分配给逻辑相关的服务.(即如果客户可以做A,那么逻辑上他也可以做​​B).

或者,我必须将用户的整个权限集编码为安全头的一部分.我将不得不调查开销是多少.

编辑:

有几个人提到了其他安全方案,比如WS-Security和SAML等.我已经有了.事实上,我从WS-Security那里得到了这个想法.问题是其他方案不提供我需要的功能(缓存授权信息并防止在没有中间数据库的情况下重放).如果有人知道一个方案,那么我会用它来替代它.此外,这不是关于身份验证.这是由我无法控制的另一种机制处理的.

如果事实证明无法缓存授权数据,那么这意味着我只需要承担每个级别的授权开销.

security web-services

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

什么是编译的好资源?

不耐烦的总结:我正在寻找关于为公共语言结构生成代码但不解析的好参考.

我对编程语言很感兴趣,并尝试尽可能多地阅读文献.但是大多数都是从功能和理论的角度来讨论这个话题,我觉得很难理解,更不用说实现这些想法了.

所以问题是; 您建议哪些资源以更加迫切和实用的方式涵盖主题的编程语言实现?

例如,我发现" Lua 5.0的实现 "论文非常有启发性.

请注意,我不是在寻找有关解析或标记的文章.

language-features code-generation compiler-theory

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

是否有人在生产中使用Microsoft软件许可和保护服务(SLP)?

Microsoft已经提出了我正在考虑将其用于.NET 3.5应用程序的这项相当新的技术。我很好奇,有人在使用这项技术吗?我担心使用安全虚拟机会对性能产生负面影响。同样,按照Microsoft宣传产品的方式,许可集成似乎是无缝的,不需要代码中的任何开发工作。这似乎是一个很棒的产品,但我想确保在投入使用之前先了解所有陷阱。

.net performance licensing

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

C#中的固定语句

在我们的一个项目中,我们有类似的代码.任何人都可以解释(简单英语)为什么需要修复语句?

class TestClass
{
    int iMyVariable;
    static void Main()
    {
        TestClass oTestClass = new TestClass();
        unsafe
        {
            fixed (int* p = &oTestClasst.iMyVariable)
            {
                *p = 9;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# garbage-collection memory-management unsafe

12
推荐指数
3
解决办法
3225
查看次数

Javascript字符串连接比这个例子更快?

我必须在Javascript中连接一堆字符串,并且我正在寻找最快的方法.让我们假设Javascript必须创建一个大的XML文件,当然,它由许多小字符串组成.所以我提出来:

    var sbuffer = [];
    for (var idx=0; idx<10000; idx=idx+1) {
        sbuffer.push(‘<xmltag>Data comes here... bla... </xmltag>’);
    }
    // Now we "send" it to the browser...
    alert(sbuffer.join(”));
Run Code Online (Sandbox Code Playgroud)

不要注意循环或构建示例的其他"复杂"代码.

我的问题是:对于未知数量的字符串,您是否有更快的算法/方法/想法将许多小字符串连接到一个巨大的字符串?

javascript performance join

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

如何解决Delphi的[Pascal致命错误] F2084内部错误:LA33?

我真的厌倦了这个问题.谷歌搜索似乎总是建议"删除包的所有bpls","删除所有dcus".有时这只是不行.希望我能在这里得到一些其他的想法.

我有一个内部写的包,几个月前没有问题安装.对源进行了一些更改后,我认为是时候重新编译/重新安装软件包了.现在我得到两个错误,第一个如果我选择"安装"是

模块'dcc100.dll'中地址02422108的访问冲突.读取地址00000000.

...或者,如果我尝试构建/编译包,我得到

[Pascal致命错误] F2084内部错误:LA33

这是我们许多人似乎一次又一次出现的德尔福问题之一.如果我们能够按照"任何一个或这些步骤的组合可能修复它"的方式整理响应,那将会很棒,但是如果你做了所有这些步骤,它将修复它......

目前,我已删除了对此程序包的bpl/dcp文件的所有引用,但仍然得到相同的错误...

使用BDS2006(Delphi)

2008年10月1日更新:我设法解决了这个问题 - 请参阅下面的帖子.由于我不能接受我自己的答案,我不完全确定在这里做什么.显然,对于某些人来说,这些类型的问题经常发生,所以我会暂时保持开放以获得其他建议.然后我想如果有人将所有信息整理成一个超级帖子,我可以接受答案

delphi install packages

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

面向对象与分层;平衡“面向对象的纯度”和完成工作

我相信面向对象,但还没有达到为了“符合面向对象”而使用不适当的设计/实现的程度。

那么,如何处理Serlvet/EJB/DataContainer分层架构:

  • Servlet 接收请求并调用“业务层”(例如会话 EJB)
  • 业务层从数据库中定位DataContainer并操作它们来实现业务逻辑
  • DataContainers 不包含真正的代码,仅包含与数据库对应的获取/设置。

这种方法很有吸引力;DataContainer 的作用很明确,并且很容易知道数据来自哪里。

除了不是面向对象之外,这还会导致业务层类不明确,难以命名和组织。

即使我们试图变得更加“面向对象”(例如,将其中一些方法放入 DataConatiners 中),其中一些操作也会对多个数据集进行操作。

如何防止业务层变得令人困惑的程序,但又不会用业务逻辑污染您的数据容器?

例子

class UserServlet {
  handleRequest() {
    String id = request.get("id");
    String name = request.get("name");
    if (UserBizLayer.updateUserName(id,name))
      response.setStatus(OK);
    else
      response.setStatus(BAD_REQUEST);
  }
}

class UseBizLayer {
    updateUserName(String id, String name) {
        long key = toLong(id);
        user = userDAO.find(key);
        if user == null
            return false;
        if (!validateUserName(name))
            return false;
        user.setName(name);
        userDAO.update(user);
        return true;
    }

    validateUserName(String name) {
        // do some validations and return
    }
}

class …
Run Code Online (Sandbox Code Playgroud)

oop class-design

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

如何对托管在其他域上的WCF服务进行JavaScript调用?

我们正在使用ASP.NET和AJAX设计Web应用程序,我们希望在不同的网站上托管我们的WCF服务层,并从我们的客户端页面调用服务层.我们知道浏览器不允许对不同的端口或域进行AJAX调用.构建解决方案的最佳方法是什么?我们正在考虑将代理层与托管在同一域上的服务一起使用,该客户端具有对服务层的Web引用.有更好的解决方案吗?

javascript ajax wcf xmlhttprequest wcf-routing

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