小编Som*_*ium的帖子

Apache SSPI(NTLM,Active Directory)自动登录不起作用

我想在Intranet中自动登录.
我们的基础设施正在追随(无法改变):

  • Web服务器:Apache + PHP,在域名下 test.local
  • 域名下的Active Directory服务器 ldap.local

我安装authnz_sspi_module在Web服务器上并配置.htaccess:

AuthName "test"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain ldap.local
SSPIOmitDomain On
SSPIOfferBasic Off
SSPIBasicPreferred Off
SSPIOfferSSPI On
Require valid-user
Run Code Online (Sandbox Code Playgroud)

在Firefox中about:config我换network.automatic-ntlm-auth.trusted-uristest.local.

然后Firefox不会要求输入用户名和密码,而是立即打印401 Unauthorized页面.Apache在错误日志中打印用户名或密码不正确且该用户未知.
在Chrome(没有额外配置)它要求凭据,当我提供它们时,我也得到401错误.
我在Windows服务器上启用了NTLM审核.在事件日志中从Chrome进行日志记录时会出现两个事件 - Audit Success其中安全ID是域名用户名,第二个Audit Failure是安全ID NULL SID.从Firefox输入页面时,只创建一个事件 - Audit Failure具有安全ID NULL SID.
当我打开基本身份验证时,Firefox要求输入两次用户名和密码并重定向到www.test.local并说明连接已重置.

也许Windows服务器配置不正确?我花了一整天时间搜索网页并尝试不同的配置,没有一个工作.一种配置用于提示用户输入用户名和密码,但是,我再也不能重复了.

有谁知道问题出在哪里以及如何让它发挥作用?

apache ntlm sspi active-directory

11
推荐指数
0
解决办法
545
查看次数

使用预处理程序指令来定义美元符号代表什么会导致任何冲突吗?

我可以在C++中使用以下内容吗?:

#define $ cout

int main(){
    $<<"Hello World!\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想知道它是否会引起任何冲突.

c++ dollar-sign c-preprocessor

6
推荐指数
2
解决办法
853
查看次数

Rational函数系列扩展的最佳算法

我需要在C++中编写函数,它有效地找到给定有理函数(P(x)/ Q(x))的泰勒级数的系数.

函数参数将是多项式的幂(在分母和分母中相等),两个具有多项式系数的数组和扩展中的项数.

我的想法是跟随.考虑身份

P(x) / Q(x) = R(x) + ...
Run Code Online (Sandbox Code Playgroud)

其中R(x)多项式的项数等于我需要找到的系数的数量.然后我可以将两边相乘Q(x)并获得

P(x) = R(x) * Q(x)

R(x) * Q(x) - P(x) = 0
Run Code Online (Sandbox Code Playgroud)

因此,所有系数都应为零.这是具有O(n ^ 3)算法的方程组.O(n ^ 3)并不像我想的那么快.

有没有更快的算法?

我知道系列的系数满足线性递归关系.这让我觉得O(n)算法是可行的.

c++ algorithm taylor-series

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

比较两个没有溢出的整数产品

我需要找出是否a*b >= c*da,b,c,d32位整数上签名(我机器上的'int').

是否可以仅使用32位有符号整数来比较那些没有溢出的产品,这样结果对于所有可能的值都是正确的?

我想过a/d >= c/b.

然而,它在'2*7> = 3*5'(假)上失败,因为'2/5> = 3/7'('0> = 0')为真.

c++

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

Java多线程提供非常小的性能增益

我想学习并行编程以加速算法并选择Java.
我写了两个函数来对long数组中的整数求和- 一个简单的迭代遍历数组,第二个 - 将数组分成几个部分,并在分离的线程中汇总部分.

我预计使用两个线程的速度大约是2倍.但是,我得到的只是加速了24%.而且,使用更多线程,我在两个线程上没有任何改进(可能少于1%).我知道应该有线程创建/加入开销,但我想它不应该那么大.

你能解释一下,我错过了什么或代码中的错误在哪里?这是代码:

import java.util.concurrent.ThreadLocalRandom;


public class ParallelTest {


public static long sum1 (long[] num, int a, int b) {
    long r = 0;
    while (a < b) {
        r += num[a];
        ++a;
    }
    return r;
}

public static class SumThread extends Thread {
    private long num[];
    private long r;
    private int a, b;

    public SumThread (long[] num, int a, int b) {
        super();
        this.num = num;
        this.a = a;
        this.b = b;
    } …
Run Code Online (Sandbox Code Playgroud)

java parallel-processing multithreading

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

PHPExcel快速重复行

每个单元格都有不同样式的行.我需要复制它(复制文本,样式,大小).

我正在使用以下功能来执行此操作:

  function copyRowFull(&$ws_from, &$ws_to, $row_from, $row_to) {
    $ws_to->getRowDimension($row_to)->setRowHeight($ws_from->getRowDimension($row_from)->getRowHeight());
    $lastColumn = $ws_from->getHighestColumn();
    $rangeFrom = 'A'.$row_from.':'.$lastColumn.$row_from;
    // copy text
    $ws_to->fromArray($ws_from->rangeToArray($rangeFrom), null, 'A'.$row_to);
    // copy style
    ++$lastColumn;
    for ($c = 'A'; $c != $lastColumn; ++$c) {
      $ws_to->duplicateStyle($ws_from->getStyle($c.$row_from), $c.$row_to);
    }
  }
Run Code Online (Sandbox Code Playgroud)

然而它由于循环而非常慢但我需要它很快,因为许多行将被复制.

我也试过这个样式复制:

$rangeTo = 'A'.$row_to.':'.$lastColumn.$row_to;
$ws_to->getStyle($rangeTo)->applyFromArray($ws_from->getStyle($rangeFrom));
Run Code Online (Sandbox Code Playgroud)

但它不起作用 - 抛出错误"传递的样式数组无效".

有没有更快的方法?

php phpexcel

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

可滚动div中的CSS表右边距

我有div"overflow:scroll"和固定大小的表.
我需要在表格的右下方添加空白区域.
我正在使用以下代码,但它只在表格下方添加空间,右边距因某些原因不起作用...

是否可以不改变html结构?

<style>
  div{
    display: inline-block;
    width: 100px;
    height: 100px;
    background: blue;
    overflow: scroll;
  }
  table{
    table-layout: fixed;
    background: red;
    margin-bottom: 20px; /* working */
    margin-right: 20px; /* not working */
  }
  td{
    min-width: 150px;
    max-width: 150px;
  }
</style>
<div>
  <table>
    <tr><td>a</td></tr>
    <tr><td>b</td></tr>
    <tr><td>c</td></tr>
    <tr><td>d</td></tr>
  </table>
</div>
Run Code Online (Sandbox Code Playgroud)

JSFiddle:http://jsfiddle.net/7cdzh0cn/

此外,我尝试向DIV添加填充但是它们不起作用 - DIV只增加了大小.

注意:我不希望更改DIV的大小或表的大小 - 它们应该保持不变.我只想在桌子右侧和下方之后清空DIV内的空间.

html css

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

考虑到colspan和rowspan,Javascript获取表格单元格二维数组

我有一个带有 colspans 和 rowspans 的表,就像这个 5x3 表:

<table id="test">
  <tr>
    <td colspan="2">1</td><td>2</td><td rowspan="2">3</td><td>4</td>
  </tr>
  <tr>
    <td>5</td><td colspan="2">6</td><td>7</td>
  </tr>
  <tr>
    <td>8</td><td>9</td><td>10</td><td>11</td><td>12</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

例子

我想在 Javascript 中创建二维数组,其中包含给定坐标处的单元格 DOM 元素。
对于给定的示例,它如下(为简单起见,数字表示具有相应内容的 DOM 单元格元素):

[[1, 1, 2, 3, 4], [5, 6, 6, 3, 7], [8, 9, 10, 11, 12]]
Run Code Online (Sandbox Code Playgroud)

你看,它就像 Javascript property table.rows,但是带有 colspan/rowspan 的单元格出现了很多次。如果只允许 colspan,那么创建这样的数组并不困难 - 只需循环table.rows并推送到数组单元格的次数与 colspan 相同。然而,当 rowspan 也被允许时,这变得棘手。

这是我的尝试:

  var tableEl = document.getElementById('test');
  var cells2D = [];
  var rows = tableEl.rows;
  var x = 0, y = …
Run Code Online (Sandbox Code Playgroud)

html javascript multidimensional-array

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

是否可以使用正则表达式获取前 n 个字符但仅以整个单词结尾?

我需要从给定的字符串中获取第一个字符,最多达到给定的数量,但以整个单词结尾。我可以通过在单词边界处分割并在循环中逐字附加直到总长度超过阈值来解决它。

我想知道,是否可以完全使用正则表达式来完成,而不需要循环?
我知道如何选择 n 个字符 ( .{n}) 或 n 个完整单词 ( (\w+){n}),但不知道如何选择总共 n 个字符以内的单词。

例如,如果我有 n=17 并且文本是The quick brown fox jumps over the lazy dog,那么输出应该是The quick brown(15<17 个字符),因为The quick brown fox已经大于所需的(19>17 个字符)。

java regex

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

在 Javascript 中“d.setDate(d.getDate() + 1)”在时间改变的日子里给出了错误的答案

我有以下代码:

var d = new Date('2016-03-27');
console.log(d.getDate(), d);
d.setDate(d.getDate() + 1);
console.log(d.getDate(), d);
Run Code Online (Sandbox Code Playgroud)

这给出了错误的答案:

27 Date 2016-03-27T00:00:00.000Z
28 Date 2016-03-27T23:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

注意第二行日期不匹配。似乎它增加了 24 小时而不是一天。语言环境是拉脱维亚,当天时间更改了 1 小时。

正确答案将是:

28 Date 2016-03-28T00:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

javascript date

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

当一个点移动时,有效地重新计算点集的边界矩形

我有一系列的观点.我需要找到最小的边界矩形,每次移动点时都包含所有点.

它可以迭代所有点并O(n)在每次移动一个点时找到最小/最大坐标 - 每次移动.

我想知道,这可能比O(n)先行后的每一步都要快吗?

我以为我可以找到初始边界矩形然后以某种方式只更新它.

algorithm complexity-theory asymptotic-complexity

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