我想为用户保留一些文件名(例如最近的文件).
我们使用六个示例文件:
c:\Documents & Settings\Ian\My Documents\Budget.xls
c:\Documents & Settings\Ian\My Documents\My Pictures\Daughter's Winning Goal.jpg
c:\Documents & Settings\Ian\Application Data\uTorrent
c:\Documents & Settings\All Users\Application Data\Consonto\SpellcheckDictionary.dat
c:\Develop\readme.txt
c:\Program Files\Adobe\Reader\WhatsNew.txt
我现在正在硬编码特殊文件夹的路径.如果用户重定向其文件夹,漫游到另一台计算机或升级其操作系统,则路径将被破坏:
我想成为一名优秀的开发人员,并将这些硬编码的绝对路径转换为相应的特殊文件夹中的相对路径:
%CSIDL_Personal%\Budget.xls
%CSIDL_MyPictures%\Daughter's Winning Goal.jpg
%CSIDL_AppData%\uTorrent
%CSIDL_Common_AppData%\Consonto\SpellcheckDictionary.dat
c:\Develop\readme.txt
%CSIDL_Program_Files%\Adobe\Reader\WhatsNew.txt
困难在于同一文件可以有多个表示,例如:
c:\Documents & Settings\Ian\My Documents\My Pictures\Daughter's Winning Goal.jpg
%CSIDL_Profile%\My Documents\My Pictures\Daughter's Winning Goal.jpg
%CSIDL_Personal%\My Pictures\Daughter's Winning Goal.jpg
%CSIDL_MyPictures%\Daughter's Winning Goal.jpg
另请注意,在Windows XP中,我的图片存储在 My Documents
:
%CSIDL_Profile%\My Documents
%CSIDL_Profile%\My Documents\My Pictures
Run Code Online (Sandbox Code Playgroud)
但在Vista/7上它们是分开的:
%CSIDL_Profile%\Documents
%CSIDL_Profile%\Pictures
Run Code Online (Sandbox Code Playgroud)
注意:我意识到语法
%CSIDL_xxx%\filename.ext
无效; …
windows roaming special-folders roaming-profile canonicalization
以下 2 个规范链接标签是否会被蜘蛛视为指向相同的 URL?
<link rel="canonical" href="http://www.example.com/ŷ" />
-编码
<link rel="canonical" href="http://www.example.com/?" />
-未编码
我遇到了验证SAML 2.0 Assertion XML签名的问题.我正在使用simpleSAMLphp项目中的SAML2库,而后者又使用PHP xmlseclibs
库来签名XML并验证签名.
我收到了我的合作伙伴的以下断言:
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Version="2.0" ID="_c43265fe-8cd5-410f-b63d-dac9f266d4c9" IssueInstant="2015-01-23T17:46:28.456Z"><saml:Issuer>uat.test.com/saml2.0</saml:Issuer><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference URI="#_c43265fe-8cd5-410f-b63d-dac9f266d4c9"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"><InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default saml ds xs xsi"/></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>mFKEIdw+cEielORqscbHuAJhI58=</DigestValue></Reference></SignedInfo><SignatureValue>kEZHloxYJVqDg8oxLNpl+sbJYhv9r7yYU5yQi71gCNm/Cdtj9/P2LR5cnopKZZu+7j3PVimeZoir6RTTrdVKTLkp+PmvOmTlLH/LVtntQZ68TaUxUd3BvtQiKuJ8KFwWPmQ+W3RIKv4ySAsy6PUiWPcr8eIYpIiUA6rxCuSEpdA=</SignatureValue><KeyInfo><X509Data><X509Certificate>MIICczCCAdygAwIBAgIEdWfFczANBgkqhkiG9w0BAQUFADB0MQswCQYDVQQIEwJNQTEQMA4GA1UEBxMHTm9yd29vZDEPMA0GA1UEChMGTWVyY2VyMRswGQYDVQQLExJNZXJjZXIgSFIgU2VydmljZXMxJTAjBgNVBAMTHE1lcmNlciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDcwNjI5MDI1NTQxWhcNMTcwNzI5MDQwMDAwWjB2MQswCQYDVQQIEwJNQTEQMA4GA1UEBxMHTm9yd29vZDEPMA0GA1UEChMGTWVyY2VyMRswGQYDVQQLExJNZXJjZXIgSFIgU2VydmljZXMxJzAlBgNVBAMTHk1lcmNlciBIdW1hbiBSZXNvdXJjZSBTZXJ2aWNlczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAm9KNx7UmRbWwJ0gmIV9sZzMDH4uz+o6ZmOxVRLvrO0Yzc9Qsc+7f+jIEGsVpbeaj5zx+4c8g46QqGam/Ap+4peewduVAN7GwK8UrmveASQH1Y/byTVGhyndfEtHfauresYpNDbgCn/iq/cXNapuFaTB4U0MPtz8Bqds1871hNasCAwEAAaMQMA4wDAYDVR0PBAUDAwf/gDANBgkqhkiG9w0BAQUFAAOBgQBR5wV43k1XcIM7z24SBvpEDWgEawXZ3TjTI9/54v/ZAdzXAiYfLKVV+hiyum+QP9jezDUH+Wz2bqzjlxOSU7HvUn4MwN+88a1hvSXpPxsp7y4d7juVt66aip/9NuSWbNqUPdhgK/KvMHrZpksCoxUJG2+Q1Jz7aNiBQvONRRPdTg==</X509Certificate></X509Data></KeyInfo></Signature><saml:Subject><saml:NameID>000786320</saml:NameID><saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"><saml:SubjectConfirmationData NotOnOrAfter="2015-01-23T17:51:28.471Z" Recipient="https://test.com/sso"/></saml:SubjectConfirmation></saml:Subject><saml:Conditions NotBefore="2015-01-23T17:41:28.456Z" NotOnOrAfter="2015-01-23T17:51:28.456Z"><saml:AudienceRestriction><saml:Audience>test.com:saml2.0</saml:Audience></saml:AudienceRestriction></saml:Conditions><saml:AuthnStatement AuthnInstant="2015-01-23T17:46:28.456Z" SessionIndex="SI-8bd89651-62da-4b7d-9a54-04eb2eb90784"><saml:AuthnContext><saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml:AuthnContextClassRef></saml:AuthnContext></saml:AuthnStatement><saml:AttributeStatement><saml:Attribute Name="email" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" FriendlyName="email"><saml:AttributeValue>invalidemail@invalid.com</saml:AttributeValue></saml:Attribute><saml:Attribute Name="firstName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" FriendlyName="firstName"><saml:AttributeValue>Diane</saml:AttributeValue></saml:Attribute><saml:Attribute Name="lastname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" FriendlyName="lastname"><saml:AttributeValue>Test</saml:AttributeValue></saml:Attribute><saml:Attribute Name="zipCode" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" FriendlyName="zipCode"><saml:AttributeValue>02062</saml:AttributeValue></saml:Attribute><saml:Attribute Name="businessUnit" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" FriendlyName="businessUnit"><saml:AttributeValue>78945</saml:AttributeValue></saml:Attribute><saml:Attribute Name="employeeID" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" FriendlyName="employeeID"><saml:AttributeValue>000786320</saml:AttributeValue></saml:Attribute></saml:AttributeStatement></saml:Assertion>
Run Code Online (Sandbox Code Playgroud)
签名元素请求独占的C14N规范化.该xmlseclibs
库库canonicalizes此如下:
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="_c43265fe-8cd5-410f-b63d-dac9f266d4c9" IssueInstant="2015-01-23T17:46:28.456Z" Version="2.0"><saml:Issuer>uat.test.com/saml2.0</saml:Issuer><saml:Subject><saml:NameID>000786320</saml:NameID><saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"><saml:SubjectConfirmationData NotOnOrAfter="2015-01-23T17:51:28.471Z" Recipient="https://test.com/sso"></saml:SubjectConfirmationData></saml:SubjectConfirmation></saml:Subject><saml:Conditions NotBefore="2015-01-23T17:41:28.456Z" NotOnOrAfter="2015-01-23T17:51:28.456Z"><saml:AudienceRestriction><saml:Audience>test.com:saml2.0</saml:Audience></saml:AudienceRestriction></saml:Conditions><saml:AuthnStatement AuthnInstant="2015-01-23T17:46:28.456Z" SessionIndex="SI-8bd89651-62da-4b7d-9a54-04eb2eb90784"><saml:AuthnContext><saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml:AuthnContextClassRef></saml:AuthnContext></saml:AuthnStatement><saml:AttributeStatement><saml:Attribute FriendlyName="email" Name="email" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"><saml:AttributeValue>invalidemail@invalid.com</saml:AttributeValue></saml:Attribute><saml:Attribute FriendlyName="firstName" Name="firstName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"><saml:AttributeValue>Diane</saml:AttributeValue></saml:Attribute><saml:Attribute FriendlyName="lastname" Name="lastname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"><saml:AttributeValue>Test</saml:AttributeValue></saml:Attribute><saml:Attribute FriendlyName="zipCode" Name="zipCode" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"><saml:AttributeValue>02062</saml:AttributeValue></saml:Attribute><saml:Attribute FriendlyName="businessUnit" Name="businessUnit" …
Run Code Online (Sandbox Code Playgroud) 我正在尝试理解 Nauty 算法。遵循这篇文章:http://www.math.unl.edu/~aradcliffe1/Papers/Canonical.pdf
在该算法中,根据顶点的度数以及一个组与其他组相对应的相对度数(组动作)来区分顶点。通过这种方式,我们得到的组为:
1379|2468|5
完成此步骤后,将按照本文第 7 页中所述完成拆分。本文中的一张图片是:
我无法理解分裂是如何进行的,
1379|2468|5
为什么会分到不同的组,然后又1|9|37|68|24|5
分到另一个组。1
9
37
我试图通过使用System.Security.Cryptography.Xml.XMLDsigC14nTransform
c#.net Framework 2.0类来规范化xml节点。
该实例需要三种不同的输入类型,即NodeList,Stream和XMLDocument。我尝试使用所有这些输入类型进行转换,但是得到了不同的结果。我真正想做的是规范化单个节点,但是正如您在输出文件中看到的那样,输出不包含任何内部xml。
非常感谢有关规范XML节点的正确方法的任何建议。最好,
string path = @"D:\Test\xml imza\sign.xml";
XmlDocument xDoc = new XmlDocument();
xDoc.PreserveWhitespace = true;
using (FileStream fs = new FileStream(path, FileMode.Open))
{
xDoc.Load(fs);
}
// canon node list
XmlNodeList nodeList = xDoc.SelectNodes("//Child1");
XmlDsigC14NTransform transform = new XmlDsigC14NTransform();
transform.LoadInput(nodeList);
MemoryStream ms = (MemoryStream)transform.GetOutput(typeof(Stream));
File.WriteAllBytes(@"D:\Test\xml imza\child1.xml", ms.ToArray());
// canon XMLDocument
transform = new XmlDsigC14NTransform();
transform.LoadInput(xDoc);
ms = (MemoryStream)transform.GetOutput(typeof(Stream));
File.WriteAllBytes(@"D:\Test\xml imza\doc.xml", ms.ToArray());
// Document to Stream
ms = new MemoryStream();
XmlWriter xw = XmlWriter.Create(ms);
xDoc.WriteTo(xw);
xw.Flush();
ms.Position …
Run Code Online (Sandbox Code Playgroud) 许多网站都可以使用FQDN进行访问(即在 TLD 后添加一个点):
\n\n有些网站无法以这种方式访问\xe2\x80\x99,但我现在可以\xe2\x80\x99t 找到示例。\xc2\xb9 \xc2\xb2
\n\n是否可以在.htaccess
文件内将所有带点后缀的变体重定向到不带点后缀的变体?
理想情况下使用“通配符”规则,这样您就不必显式列出域(以便在不同的站点/域上使用它而无需编辑)。
\n\n重定向示例:
\n\nhttp://example.com./
\xe2\x86\x92 http://example.com/
http://example.com./foo
\xe2\x86\x92 http://example.com/foo
http://sub.example.com./bar.html
\xe2\x86\x92 http://sub.example.com/bar.html
\xc2\xb9 stackoverflow.com,当通过 HTTP 访问时,通常会给出 HTTP 错误 400:“错误请求 - 无效主机名”。
\n\n\xc2\xb2 维基百科,当通过 HTTPS 访问时(当它仍然是可选的时),曾经给出证书错误:“证书仅对以下名称有效:” *.wikipedia.org
,wikipedia.org
(错误代码:ssl_error_bad_cert_domain)
获得幂等用户名的规范表示的最佳方法是什么?
我想避免遇到与Spotify相同的问题:http://labs.spotify.com/2013/06/18/creative-usernames/
我正在寻找一个很好的库来用Python做到这一点.我宁愿不做Spotify最终做的事情(运行规范化两次以测试它是否是幂等的),并且将Twisted导入我的项目有点过分,是否有一个独立的库?
在用户名方面,使用电子邮件地址是首选吗?主要网站/公司如何处理这个问题?
当 XML 必须根据http://www.w3.org/TR/xml-exc-c14n/进行规范化时,以下 XML 片段是否应该变得相等?(注意,该.
字符代表空格' '
)
<a>
.<b>
..<c>data</c>
.</b>
</a>
Run Code Online (Sandbox Code Playgroud)
和
<a>
...<b>
......<c>data</c>
...</b>
</a>
Run Code Online (Sandbox Code Playgroud)
换句话说:独占规范化是否会忽略空格?(或忽略缩进大小)
或者,缩进应该保持不变吗?第一个怎么样?<b>
(从秒的例子)的规范化版本会变成
...<b>
......<c>data</c>
...</b>
Run Code Online (Sandbox Code Playgroud)
或者
<b>
......<c>data</c>
...</b>
Run Code Online (Sandbox Code Playgroud)
或者
<b>
...<c>data</c>
</b>
Run Code Online (Sandbox Code Playgroud) 在C++中,我们可以在标识符中使用各种Unicode字符.例如,您可以命名变量résumé
.
那些带有重音的e
s可以用不同的方式表示:作为预组合字符或作为e
具有组合重音字符的普通字符.许多应用程序规范化这些字符串,以便看似相同的字符串实际匹配.
看看C++标准,我没有看到任何需要编译器规范化标识符的东西,因此变量résumé
可能与变量不同re?sume?
.(在我的测试中,似乎并不像MSVC或clang标准化标识符.)
是否有任何禁止编译器选择正常形式的东西?如果不是,在翻译的哪个阶段应该进行规范化?
[要明确:我在谈论标识符,而不是字符串文字.]
c++ unicode language-lawyer canonicalization unicode-normalization
我理解规范化和规范化意味着删除数据表示中任何无意义或模棱两可的部分,将有效相同的数据转化为实际相同的数据。
例如,如果您想获取某些输入数据的哈希值,并且其他人对规范相同的数据进行哈希处理获得相同的哈希值很重要,那么您不希望一个文件使用制表符缩进而另一个使用空格(没有其他区别) ) 导致两个截然不同的哈希值。
在 JSON 的情况下:
我的定义是否正确,并且这些术语可以互换?或者输入数据的规范化和规范化之间是否存在明确定义的特定区别?
canonicalization ×10
xml ×3
.htaccess ×1
algorithm ×1
c# ×1
c++ ×1
fqdn ×1
graph-theory ×1
html ×1
isomorphism ×1
php ×1
python ×1
redirect ×1
roaming ×1
seo ×1
unicode ×1
username ×1
windows ×1
xmlseclibs ×1