用于创建 SamlSecurityToken 实例的任何示例



我不确定这是否是一个好问题,但是:

我正在尝试在互联网上找到创建System.IdentityModel.Tokens.SamlSecurityToken和System.IdentityModel.Tokens.SamlAssertion实例的任何示例,但我找不到...有什么帮助吗?

知道了!来源(在我写问题时服务器没有响应):http://developers.de/blogs/damir_dobric/archive/2007/02/22/Creating-of-SAML-token.aspx

private static void Main(string[] args)
{
  SamlAssertion assertion = createSamlAssertion();
  SamlSecurityToken samlToken = new SamlSecurityToken(assertion); 
} 
/// <summary> 
/// Creates some Test SAML assertion 
/// </summary> 
/// <returns></returns> 
private static SamlAssertion createSamlAssertion() 
{ 
  // Here we create some SAML assertion with ID and Issuer name. 
  SamlAssertion assertion = new SamlAssertion(); 
  assertion.AssertionId = "DaenetSamlTest"; 
  assertion.Issuer = "damir"; 
  // 
  // Create some SAML subject. 
  SamlSubject samlSubject = new SamlSubject(); 
  samlSubject.Name = "My Subject"; 
  // 
  // Create one SAML attribute with few values. 
  SamlAttribute attr = new SamlAttribute(); 
    attr.Namespace = http://daenet.eu/saml; 
    attr.AttributeValues.Add("Some Value 1"); 
  attr.AttributeValues.Add("Some Value 2"); 
  attr.Name = "My ATTR Value"; 
  // 
  // Now create the SAML statement containing one attribute and one subject. 
  SamlAttributeStatement samlAttributeStatement = new SamlAttributeStatement(); 
  samlAttributeStatement.Attributes.Add(attr); 
  samlAttributeStatement.SamlSubject = samlSubject; 
  // Append the statement to the SAML assertion. 
   assertion.Statements.Add(samlAttributeStatement); 
  return assertion; 
} 

这是为了签署断言

/// <summary> 
/// Creates some signed Test SAML assertion. 
/// </summary> 
/// <returns></returns> 
private static SamlAssertion createSamlAssertion() 
{
  // 
  // Create certificate from file. It must contain private key! 
  X509Certificate2 cert = new X509Certificate2("filename.cert"); 
  // The private key contained in the certificate will be used to sign the   
  token.   
  X509AsymmetricSecurityKey signingKey = new X509AsymmetricSecurityKey(cert); 
  SamlAssertion assertion = createSamlAssertion(); 
  // 
  // Signing credentials are consisted 
  // of private key in the certificate (see above), 
  // the signature algorithm, security algortihm and key identifier. 
  assertion.SigningCredentials = 
  new SigningCredentials(signingKey, SecurityAlgorithms.RsaSha1Signature,     
  SecurityAlgorithms.Sha1Digest, 
  new SecurityKeyIdentifier(new X509ThumbprintKeyIdentifierClause(cert))); 
  // Finally create the SamlSecurityToken from the assertion 
  SamlSecurityToken samlToken = new SamlSecurityToken(assertion); 
  // Create a SecurityTokenSerializer that 
  // will be used to serialize the SamlSecurityToken 
  WSSecurityTokenSerializer ser = new WSSecurityTokenSerializer(); 
  using (XmlWriter xWriter = XmlWriter.Create("saml.xml")) 
  { 
    ser.WriteToken(xWriter, samlToken); 
  } 
} 

相关内容

  • 没有找到相关文章

最新更新