小编Grh*_*rhm的帖子

如何从之前构建一个使用数据一个XmlReader或XPathDocument的基于XML的数据源中删除无效的十六进制字符?

在XmlReader中使用它之前,是否有任何简单/通用的方法来清理基于XML的数据源,以便我可以优雅地使用不符合XML上的十六进制字符限制的XML数据?

注意:

  • 该解决方案需要处理使用UTF-8以外的字符编码的XML数据源,例如,通过在XML文档声明中指定字符编码.在剥离无效的十六进制字符时,不破坏源的字符编码一直是一个主要的难点.
  • 删除无效的十六进制字符应仅删除十六进制编码值,因为您经常可以在数据中找到碰巧包含字符串的href值,该字符串将是十六进制字符的字符串匹配.

背景:

我需要使用符合特定格式的基于XML的数据源(想想Atom或RSS提要),但希望能够使用已发布的数据源,这些数据源包含符合XML规范的无效十六进制字符.

在.NET中,如果您有一个表示XML数据源的Stream,然后尝试使用XmlReader和/或XPathDocument对其进行解析,则会由于在XML数据中包含无效的十六进制字符而引发异常.我目前解决此问题的尝试是将Stream解析为字符串并使用正则表达式删除和/或替换无效的十六进制字符,但我正在寻找更高性能的解决方案.

c# xml validation encoding

74
推荐指数
6
解决办法
9万
查看次数

编译器降低程序的时间复杂度是否合法?这被认为是可观察到的行为吗?

(注意:这是一个问题;我不是指任何特定的现有编译器.)

是否允许编译器降低程序的时间复杂度?
在什么情况下(如果有的话)这被认为是"可观察的行为",为什么?
(例如,编译器能否合法地将多项式时间程序"减少"到指数时间程序?)

如果答案在C和C++中有所不同,或者在两者的不同版本中都有所不同,那么请解释这些差异.

c c++ language-lawyer

42
推荐指数
4
解决办法
4066
查看次数

如何将NUnit输出转换为HTML报告

有没有人对一个好的工具,xslt或其他可以从NUnit的XML输出产生HTML报告的建议?

我们目前正在使用NUnit 2.5.5在我们的代码库上运行一些测试.开发团队很高兴看到GUI和控制台运行程序中的输出以及我们的Hudson服务器上显示的报告.

Hudson生成的报告需要用户单击链接以深入查看某些详细信息.我想制作一份适合向管理层和/或客户展示的单一文件报告.

到目前为止,我发现的唯一工具是http://nunit2report.sourceforge.net/,它还没有在2003年更新,基于旧版本的NUnit(我认为报告格式可能已经发生了重大变化?)并且是一项艰巨的任务(我们不使用nant).

在我花费太长时间尝试医生nunit2reports xslt以适应最近的NUnit输出之前,有人能指出更合适的工具吗?

非常感谢.

html formatting nunit

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

更改用户登录名后的身份验证错误

我们有一位最近更名的用户.

假设旧用户名是old.name,新用户名是new.name.

在使用新用户名编辑AD和logout/login中的详细信息后,我们的ASP.NET应用程序将显示旧名称.

使用Windows身份验证的纯ASP.NET,没有MVC.

获取用户名的代码是:

WindowsPrincipal wp = (WindowsPrincipal)HttpContext.Current.User;
String userName = wp.Identity.Name.Substring(wp.Identity.Name.IndexOf("\\") + 1);
Run Code Online (Sandbox Code Playgroud)

这将返回old.name,而不是new.name.

我检查了IIS日志文件,这些文件显示了新名称:

2011-04-05 11:41:44 W3SVC1 MARS 10.57.1.64 GET /eft/Default.aspx - 80 - 10.57.0.161 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729;+.NET4.0C;+.NET4.0E) 401 2 2148074254

2011-04-05 11:41:44 W3SVC1 MARS 10.57.1.64 GET /eft/Default.aspx - 80 SANOMABP\new.name 10.57.0.161 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729;+.NET4.0C;+.NET4.0E) 200 0 0
Run Code Online (Sandbox Code Playgroud)

我们已经重新启动了应用程序池,我们检查了AD数据,而且我们没有更多想法可能出错.

asp.net windows-authentication

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

Log4net,如何记录详细消息?

我可以毫无问题地记录信息消息,但无法弄清楚如何记录详细消息.任何帮助都会受到欢迎.

我的问题是:

可以在Format函数中检查loggingEvent.Level.可能的值包括Info,Debug,Error,Verbose等.还有更多,但这些是我将主要使用的.

实际的日志对象只有以下方法:

Log.Info
Log.Debug
Log.Warn
Log.Error

正如你所看到的 - 没有冗长!

那么如何记录详细消息,这与调试不同

提前致谢

log4net

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

在asp.net按钮中使用UseSubmitBehavior的好处

在asp.net按钮中使用UseSubmitBehavior有什么好处?

c# forms asp.net submit

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

从UserPrincipal对象获取nETBIOSName

我正在使用.Net库的System.DirectoryServices.AccountManagement部分连接到ActiveDirectory.

在GroupPrincipal对象上调用GetMembers()并过滤结果后,我现在有一个UserPrincipal对象的集合

GroupPrincipal myGroup;  // population of this object omitted here 

foreach (UserPrincipal user in myGroup.GetMembers(false).OfType<UserPrincipal>())
{
    Console.WriteLine(user.SamAccountName);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码示例将打印出"TestUser1"之类的用户名.我需要将这些与来自"DOMAIN\TestUser1"格式的另一个应用程序的列表进行比较.

如何从UserPrincipal对象获取"DOMAIN"部分?

我不能只是附加一个已知的域名,因为涉及多个域,我需要区分DOMAIN1\TestUser1和DOMAIN2\TestUser2.

.net c# active-directory userprincipal

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

Docker ENV for Python变量

作为python和docker的新手,我创建了一个小烧瓶应用程序(test.py),它有两个硬编码值:

username = "test"
password = "12345"
Run Code Online (Sandbox Code Playgroud)

我能够创建一个Docker镜像并从以下Dockerfile运行一个容器:

FROM python:3.6

RUN mkdir /code  
WORKDIR /code  
ADD . /code/  
RUN pip install -r requirements.txt  

EXPOSE 5000  
CMD ["python", "/code/test.py"]`
Run Code Online (Sandbox Code Playgroud)

如何为用户名和密码创建ENV变量并在运行容器时传递动态值?

python flask docker

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

VS2010中参考前面的红色感叹号图标是什么意思?

在Visual Studio 2010项目属性页中,如果我为C++项目选择公共属性和框架和引用,我可以看到项目的所有引用.

他们通常有这个图标: 正常参考
但有时,有些引用如下所示: 红色感叹号

我尝试谷歌它或在msdn文档中找到有关它的任何文档有关参考,但找不到任何与此相关的内容.有人知道吗?非常感谢你提前!

icons visual-studio-2010

9
推荐指数
2
解决办法
3183
查看次数

使用.NET在sAMAccountName中创建具有超过20个字符的用户时出错

我正在尝试以编程方式创建一个新的Active Directory用户,使用大于20个字符的值设置sAMAccountName属性.

当我调用DirectoryEntry.CommitChanges()时,我收到错误:

00000523:SysErr:DSID-031A0FB6,问题22(参数无效),数据0

如果我尝试创建一个新用户设置sAMAccountName小于20个字符,一切正常.

在有人说sAMAccountName的限制为20个字符之前,我想指出,如果我尝试使用Windows工具"Active Directory用户和计算机"创建具有超过20个字符的sAMAccountName的同一用户,一切正常.我可以使用LDP工具在AD中看到新条目,并且条目具有超过20个字符的sAMAccountName.

为什么我不能使用.NET以编程方式创建用户?

以下是我正在使用的代码:

Using objDirEnt As DirectoryEntry = New DirectoryEntry("LDAP://my.domain.com/cn=Users,dc=my,dc=domain,dc=com", "username", "Password", AuthenticationTypes.Secure Or AuthenticationTypes.Sealing)
    Using usuario As DirectoryEntry = objDirEnt.Children.Add("CN=aaaaaa bbbbbbbbbb ccccccccc (aaaaaa.bbbbbb.ccccccccc)", "user")
        usuario.Properties("sAMAccountName").Value = "aaaaaa.bbbbbb.ccccccccc"
        usuario.Properties("userAccountControl").Value = AdsUserFlags.PasswordNotRequired
        usuario.Properties("name").Value = "aaaaaa bbbbbbbbbb ccccccccc"
        usuario.Properties("givenName").Value = "aaaaaa"
        usuario.Properties("sn").Value = "bbbbbbbbbb ccccccccc"
        usuario.CommitChanges()
    End Using
End Using
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net active-directory

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