小编Sea*_*son的帖子

在为PrincipalContext指定容器后无法找到User

我正在尝试在Active Directory中按用户名查找用户.

这有效:

const string Domain = "SLO1.Foo.Bar.biz";
const string Username = "sanderso";

PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, Domain);
UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(principalContext,  Username);
Run Code Online (Sandbox Code Playgroud)

这不是:

const string Domain = "SLO1.Foo.Bar.biz";
const string Container = "CN=Users,DC=SLO1,DC=Foo,DC=Bar,DC=biz";
const string Username = "sanderso";

PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, Domain, Container);
UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(principalContext, Username);
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

服务器上没有这样的对象.

这是我的ActiveDirectory设置的屏幕截图:

在此输入图像描述

我也尝试使用以下Container:

const string Container = "OU=Users,DC=SLO1,DC=Foo,DC=Bar,DC=biz";
Run Code Online (Sandbox Code Playgroud)

这同样不成功.

如何在访问"用户"容器时指定我的容器?在尝试引入更复杂的需求之前,我尝试将其作为初始的简单设置.所以,我宁愿不满足于这个简单的解决方案,因为我无论如何都要对此进行故障排除,我相信.

c# active-directory userprincipal

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

注入内容脚本并请求跨源权限

我很好奇,如果以下情况是Chrome中的错误,按预期工作或开发人员错误.

所以,我有一个扩展.在manifest.json中,我请求两个站点的跨源权限:

"permissions": [
    "http://www.foo.com/*",
    "http://www.bar.com/*"
]
Run Code Online (Sandbox Code Playgroud)

我还声明了一个内容脚本:

"content_scripts": [
    {
      "matches": ["http://www.foo.com/*"],
      "js": ["injectedScript.js"]
    }
]
Run Code Online (Sandbox Code Playgroud)

所以,我已经表示我想在所有foo.com域中注入"injectScript.js"."injectScript.js"看起来像:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = handleStateChange; // Implemented elsewhere.
xhr.open("GET", 'http://www.bar.com/123'), true);
xhr.send();
Run Code Online (Sandbox Code Playgroud)

现在,我的Chrome扩展程序页面中添加了一个iframe.它看起来像这样:

<iframe src="http://www.foo.com/123"></iframe>
Run Code Online (Sandbox Code Playgroud)

此框架的src与我的内容脚本模式匹配.因此,当帧加载时,injectScript.js被注入其中.但是injectScript中的XMLHttpRequest失败了.

现在,这让我想知道预期的行为是什么.当我请求相应的权限时遇到CORS问题令人沮丧...但我也可以理解我试图从我的chrome扩展程序之外的原点访问" http://www.bar.com/123 " ...虽然iframe已加载到我有权访问的扩展中.

有关此事的任何人的想法?

编辑:如果你想知道从实际的角度来看我能得到什么 - 我想注入一些javascript,可以在注入页面的视频上调用getImageData.但是,我不能,因为getImageData认为视频的src是受污染的数据.我已经请求了相应的权限,但它没有进入iframe.

更新:这是一张图片:http://i.imgur.com/PR48HO2.png

cross-domain google-chrome-extension cors

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

chrome.runtime是否支持使用可传输对象发布消息?

我正在学习可转移对象:http://updates.html5rocks.com/2011/12/Transferable-Objects-Lightning-Fast

它们看起来非常棒,我想在我的扩展中使用它们来加速将数据从iframe内部传递到iframe之外.

我有这个示例代码工作,但它使用Web Worker:

var s = document.createElement("script");
s.type = "text/js-worker";
s.innerHTML = 'console.log("i ran!");';
document.body.appendChild(s);

var blob = new Blob(Array.prototype.map.call(document.querySelectorAll("script[type=\"text\/js-worker\"]"), function (oScript) {
    return oScript.textContent;
}), { type: "text/javascript" });

var worker = new Worker(window.URL.createObjectURL(blob));

var arrayBuffer = new ArrayBuffer(1);

worker.onmessage = function (oEvent) {
    console.log("Called back by the worker!\n");
};

console.log("worker:", worker);
worker.postMessage(arrayBuffer, [arrayBuffer]);

if (arrayBuffer.byteLength) {
    console.error("nope");
} else {
    console.log("it worked");
}
Run Code Online (Sandbox Code Playgroud)

有没有人有任何关于支持的信息,或支持使用端口的crbug的时间表,如:

var port = chrome.runtime.connect({
    name: 'youTubeIFrameConnectRequest'
});

//port.postMessage -- transferrable …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension transferable

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

努力摆脱递归的Page.FindControl

我开发了一个Web控制面板,其中包含嵌入控件内部的控件结构.在许多情况下,我有一个控件的ID,需要处理实际的控件对象.因此,我使用一个实用方法,一个递归的FindControl实现,它搜索页面(或任何其他提供的对象,但我总是使用Page),作为控件的ID.

/// <summary>
/// Page.FindControl is not recursive by default.
/// </summary>
/// <param name="root"> Page </param>
/// <param name="id"> ID of control looking for. </param>
/// <returns> The control if found, else null. </returns>
public static Control FindControlRecursive(Control root, string id)
{
    if (int.Equals(root.ID, id))
    {
        return root;
    }

    foreach (Control control in root.Controls)
    {
        Control foundControl = FindControlRecursive(control, id);

        if (!object.Equals(foundControl,null))
        {
            return foundControl;
        }
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

此功能可以变得非常慢.一旦我把log4net登录到它,我意识到有多慢.我现在正试图尽可能地离开它,但我不知道我有什么其他选择,如果有的话.

例如,用户将控件拖放到我的网页上.事件处理程序如下所示:

protected void RadListBox_Dropped(object sender, RadListBoxDroppedEventArgs e)
{ …
Run Code Online (Sandbox Code Playgroud)

c#

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

我已经读过迭代HashSet是不好的做法.我应该首先调用.ToList()吗?

我有一个名为RegisteredItems的项目集合.我不关心RegisteredItems中项目的顺序,只关注它们是否存在.

我在RegisteredItems上执行两种类型的操作:

  • 按属性查找并退货.
  • 迭代收集并具有副作用.

根据:我什么时候应该使用HashSet <T>类型?罗伯特R.说,

"迭代HashSet有点危险,因为这样做会对集合中的项目施加一个顺序.该顺序实际上不是集合的属性.你不应该依赖它.如果集合中的项目的排序很重要对你来说,那个系列不是一套."

在某些情况下,我的收藏将包含50-100个项目.我意识到这不是大量的项目,但我仍然希望获得使用HashSet而不是List的回报.

我发现自己正在查看以下代码并想知道该怎么做:

LayoutManager.Instance.RegisteredItems.ToList().ForEach( item => item.DoStuff() );

vs

foreach( var item in LayoutManager.Instance.RegisteredItems)
{
    item.DoStuff();
}
Run Code Online (Sandbox Code Playgroud)

RegisteredItems用于返回一个IList<T>,但现在它返回一个HashSet.我觉得,如果我使用HashSet提高效率,将它作为List进行转换是不合适的.然而,Robert的上述引言让我对迭代它感到不安.

在这种情况下,正确的呼叫是什么?谢谢

c# enumeration list hashset

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

从javascript中的关联数组中获取随机元素?

我正在用javascript构建歌曲播放列表.我使用了一个关联数组foo- 我的对象的结构看起来类似于:

foo[songID] = songURL;
Run Code Online (Sandbox Code Playgroud)

我正在努力建立洗牌功能.我想从这个列表中随机选择一首歌.有没有一种简单的方法可以做到这一点 - 数组没有索引.

javascript

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

将整数列表从JavaScript传递到C# - 我得到了列表,但它是空的; 表单数据结构不正确?

我的数组填充如下:

updateLabels: function () {
    var diagrams = _stage.diagramLayer.getChildren();

    var componentIDs = new Array();

    for (var index = 0; index < diagrams.length; index++) {
        componentIDs.push(diagrams[index].componentID);
    }

    var self = this;
    $.ajax({
        url: '../PlanView/UpdateDiagrams',
        type: 'POST',
        data: { ComponentIDs: JSON.stringify(componentIDs), RackInfo: $('#RackInfoSelect').val() },
        success: function (data) {
            console.log('success');
        },
        error: function () {
            console.log("error");
        }
    });
    },
Run Code Online (Sandbox Code Playgroud)

服务器端我有这个方法:

[CompressionFilterAttribute]
public JsonResult UpdateDiagrams(List<int> componentIDs, string rackInfo)
{
    List<object> diagramInformation = new List<object>(componentIDs.Count());
}
Run Code Online (Sandbox Code Playgroud)

我的数据正在通过网络传递:

ComponentIDs:[74,445,732,351,348,347,1123,599,600,1053,350,601,602,603,332,99,877,919,349,348,347,347,349,348]
RackInfo:Equipment Weight
Run Code Online (Sandbox Code Playgroud)

我成功获得RackInfo,如果我将UpdateDiagrams更改为期望List<string>然后我得到一个包含一个项目的列表,整个ComponentIDs字符串.

我在这里做错了什么?

编辑:我在MVC3下工作.我应该能够在传递给我的控制器时利用某种自动反序列化,我只是不确定如何. …

javascript c# json

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

通过CSS更改光标:悬停.无需鼠标移动即可从DOM中删除元素.更新鼠标光标?

我有一个动态创建的HTML元素.它有一些CSS和HTML:

<div id="element"></div>

#element{
    height: 200px;
    width: 200px;
    background-color: blue;
}

#element:hover{
    cursor: pointer;
}
Run Code Online (Sandbox Code Playgroud)

然后,当鼠标仍然在元素上时,它将以编程方式从页面中删除.

$('#element').hover(function(){
    setTimeout(function(){
        $(this).remove();
    }.bind(this), 1000);
});
Run Code Online (Sandbox Code Playgroud)

这使光标看起来像一个指针,直到鼠标移动.有什么办法可以解决这个问题,同时仍然使用CSS悬停?

这是一个小提琴:http://jsfiddle.net/mHdtU/

编辑:这是最新的谷歌浏览器.此外,显然HIDING元素会导致光标更新.光标未更新的事实是否删除了谷歌浏览器中的错误?

$('#element').hover(function(){
    setTimeout(function(){
        $(this).hide();
        setTimeout($(this).remove.bind(this));
    }.bind(this), 1000);
});
Run Code Online (Sandbox Code Playgroud)

html javascript css css3

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

如何实现高性能转换,而不会因Web硬件加速而模糊Webkit中的文本

我有一个绝对定位的元素,我正在转换到视口.元素中包含文本.我的理解是这样的:

  • 将过渡应用于元素的位置(即顶部,左侧,底部,右侧,边距,填充)是不好的做法.这样做会强制浏览器在元素在页面上移动时重新流动.

  • 将变换应用于元素是一种很好的做法,因为当模型位置保持在原始位置时,浏览器不会产生重新流动.

  • 将转换应用于Webkit浏览器中的元素会强制进行硬件加速.(或者可以强制这样做,即如果转换:translateX没有那么你可以使用translate3d,z轴为0).

  • 硬件加速的文本不被视为矢量.这会导致文本变得模糊.

我发现这篇文章讨论了解决方法,但我并不满意.

看起来使用变换转换元素会更好,但是,一旦元素到达其静止状态,用相同度量的左/顶部替换变换以从硬件加速中移除元素.

我是在正确的轨道上吗?这里有更简单的解决方案吗?

举个简单的例子,在切换will-change属性时查看文本.您可以看到,即使没有发生变换,文本也会在预期发生变换时模糊.这与在元素上完成移动/将文本放在移动元素旁边之后在元素上留下变换是一回事.告诉Chrome将文本保持为向量会非常好,但我怀疑所有父元素都会被提升,这就是文本被更改的原因.

$('button').click(function() {
  $('.example').toggleClass('is-blurred');
});
Run Code Online (Sandbox Code Playgroud)
.example {
  font-size: 24px;
}
.example.is-blurred {
  will-change: transform;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Toggle blur</button>

<div class='example'>
  I am some text
</div>
Run Code Online (Sandbox Code Playgroud)

css css3

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

Chrome上的Flexbox最大高度解释更改

我有一些代码,目前正在Chrome Stable上正确呈现.我收到有关代码在Beta和Dev上工作不正确的报告,我能够在Canary上重现该问题.我发现这个PSA似乎与我的问题有关.所以,我正在假设这是一个更严格遵循规范而不是错误的变化.

我的软件仅定位到Google Chrome.因此,不一定需要强大的解决方案,尽管向后兼容性会很好.

设置是:

  • 父元素都有display:flex,flex-direction: column并且已经max-height应用到它.
  • 父母的深层后裔超过了 max-height

行为改变是:

  • 在稳定,max-height强制执行和孩子不爆发.
  • 在金丝雀上,max-height被忽视,孩子爆发.

我能够防止儿童通过应用突破max-heightinner元素.然而,这是不可取的,因为我需要在非设计的例子中减少max-height高度footer不容易做到的值.

以下代码段突出显示了我的问题:

.outer {
  display: flex;
  flex-direction: column;
  max-height: 410px;
}
.inner {
  display: flex;
  flex-direction: column;
}
.content {
  width: 200px;
  height: 500px;
  background-color: green;
}
.footer {
  height: 20px;
  width: 200px;
  background-color: red;
}
Run Code Online (Sandbox Code Playgroud)
<div class='outer'>
  <div class='inner'>
    <div class='content'>
    </div>
  </div>
  <div class='footer'>
  </div>
</div> …
Run Code Online (Sandbox Code Playgroud)

css google-chrome css3 flexbox

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