2015/07/18
TFS 解除舊電腦的鎖定
因同事換電腦,沒將在舊電腦鎖定的檔案解除鎖定。因在鎖定中的工作區隨舊電腦消失,被鎖定的程式任何人皆無法簽出。
作法如下:下列可以移除 David 的 Computer_David 工作區中指定的檔案鎖定
cd C:\Program Files\Microsoft Visual Studio 8\Common7\IDE tf undo /workspace:Computer_David;David $/Health/ShowMain.cs
2015/07/10
憑證驗章範例
public bool VerifyXML(string xml, out XmlElement sigElement1)
{
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.LoadXml(xml);
XmlNamespaceManager nsm = new XmlNamespaceManager(new NameTable());
nsm.AddNamespace("dsig", SignedXml.XmlDsigNamespaceUrl);
XmlElement sigElement =
(XmlElement)doc.SelectSingleNode("//dsig:Signature", nsm);
SignedXml sig = new SignedXml(doc);
sig.LoadXml(sigElement);
Console.WriteLine("Outer:\n" + doc.OuterXml);
sigElement1 = sigElement;
if (sig.CheckSignature())
return true;
return false;
}
{
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.LoadXml(xml);
XmlNamespaceManager nsm = new XmlNamespaceManager(new NameTable());
nsm.AddNamespace("dsig", SignedXml.XmlDsigNamespaceUrl);
XmlElement sigElement =
(XmlElement)doc.SelectSingleNode("//dsig:Signature", nsm);
SignedXml sig = new SignedXml(doc);
sig.LoadXml(sigElement);
Console.WriteLine("Outer:\n" + doc.OuterXml);
sigElement1 = sigElement;
if (sig.CheckSignature())
return true;
return false;
}
憑證簽章範例
public string Sign(string xmlString)
{
XmlDocument doc = new XmlDocument();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("cdp", "http://www.hl7.org.tw/EMR/CDocumentPayload/v1.0");
nsmgr.AddNamespace("ds", "http://www.w3.org/2000/09/xmldsig#");
nsmgr.AddNamespace("xades132", "http://uri.etsi.org/01903/v1.3.2#");
nsmgr.AddNamespace("xades141", "http://uri.etsi.org/01903/v1.4.1#");
doc.PreserveWhitespace = true;
doc.LoadXml(xmlString);
SignedXml sig = new SignedXml(doc);
X509Certificate2 cert = new X509Certificate2("d:\\cer.pfx", "password");
sig.SigningKey = cert.PrivateKey;
Reference reff = new Reference("");
reff.AddTransform(new XmlDsigEnvelopedSignatureTransform());
sig.AddReference(reff);
KeyInfo keyInfo = new KeyInfo();
keyInfo.AddClause(new KeyInfoX509Data(cert));
sig.KeyInfo = keyInfo;
sig.ComputeSignature();
doc.DocumentElement.AppendChild(sig.GetXml());
StringWriter sw = new StringWriter();
doc.Save(sw);
return sw.ToString();
}
{
XmlDocument doc = new XmlDocument();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("cdp", "http://www.hl7.org.tw/EMR/CDocumentPayload/v1.0");
nsmgr.AddNamespace("ds", "http://www.w3.org/2000/09/xmldsig#");
nsmgr.AddNamespace("xades132", "http://uri.etsi.org/01903/v1.3.2#");
nsmgr.AddNamespace("xades141", "http://uri.etsi.org/01903/v1.4.1#");
doc.PreserveWhitespace = true;
doc.LoadXml(xmlString);
SignedXml sig = new SignedXml(doc);
X509Certificate2 cert = new X509Certificate2("d:\\cer.pfx", "password");
sig.SigningKey = cert.PrivateKey;
Reference reff = new Reference("");
reff.AddTransform(new XmlDsigEnvelopedSignatureTransform());
sig.AddReference(reff);
KeyInfo keyInfo = new KeyInfo();
keyInfo.AddClause(new KeyInfoX509Data(cert));
sig.KeyInfo = keyInfo;
sig.ComputeSignature();
doc.DocumentElement.AppendChild(sig.GetXml());
StringWriter sw = new StringWriter();
doc.Save(sw);
return sw.ToString();
}
訂閱:
文章 (Atom)