コード例 #1
0
        public virtual GenericXmlSecurityToken RequestTrustedToken(CardSelectionContext ctx, IdentityCard card)
        {
            X509Certificate2 cert   = new X509Certificate2(card.Certificate);
            EndpointAddress  issuer = new EndpointAddress(card.Issuer, new X509CertificateEndpointIdentity(cert));

            return(RequestToken(issuer, ctx));
        }
コード例 #2
0
        public virtual GenericXmlSecurityToken RequestSelfIssuedToken(CardSelectionContext ctx, IdentityCard card)
        {
            Uri issuerUri           = card.Issuer ?? new Uri(SelfIdentityIssuerUrl);
            X509Certificate2 cert   = new X509Certificate2(SelfIdentityIssuerCertificate);
            EndpointAddress  issuer = new EndpointAddress(issuerUri, new X509CertificateEndpointIdentity(cert));

            return(RequestToken(issuer, ctx));
        }
コード例 #3
0
        GenericXmlSecurityToken GetToken(
            XmlElement target, XmlElement issuer,
            Collection <XmlElement> parameters,
            Uri policyNoticeLink, int policyNoticeVersion)
        {
            Collection <ClaimTypeRequirement> reqs  = new Collection <ClaimTypeRequirement> ();
            Collection <XmlElement>           alist = new Collection <XmlElement> ();

            foreach (XmlElement el in parameters)
            {
                if (el.LocalName == "Claims" && el.NamespaceURI == Constants.WstNamespace)
                {
                    foreach (XmlElement c in el.ChildNodes)
                    {
                        reqs.Add(new ClaimTypeRequirement(c.GetAttribute("Uri"), c.GetAttribute("Optional") == "true"));
                    }
                }
                else
                {
                    alist.Add(el);
                }
            }

            CardSelectionContext ctx = new CardSelectionContext(
                EndpointAddress.ReadFrom(XmlDictionaryReader.CreateDictionaryReader(new XmlNodeReader(target))),
                EndpointAddress.ReadFrom(XmlDictionaryReader.CreateDictionaryReader(new XmlNodeReader(issuer))),
                reqs,
                alist,
                policyNoticeLink,
                policyNoticeVersion);

            IdentityCard card = SelectCardToSend(ctx);

            if (card.Issuer != null)
            {
                // process WS-Trust RST
                return(RequestTrustedToken(ctx, card));
            }
            else
            {
                return(RequestSelfIssuedToken(ctx, card));
            }
        }
コード例 #4
0
 // This is virtual since it might not be required when
 // GetToken() is overriden.
 public virtual IdentityCard SelectCardToSend(CardSelectionContext context)
 {
     throw new NotSupportedException();
 }
コード例 #5
0
 // This must be implemented unless other depending methods
 // are overriden.
 public virtual GenericXmlSecurityToken RequestToken(EndpointAddress issuer, CardSelectionContext ctx)
 {
     return(null);
 }
コード例 #6
0
ファイル: CardSelectorClient.cs プロジェクト: REALTOBIZ/mono
		// This is virtual since it might not be required when
		// GetToken() is overriden.
		public virtual IdentityCard SelectCardToSend (CardSelectionContext context)
		{
			throw new NotSupportedException ();
		}
コード例 #7
0
ファイル: CardSelectorClient.cs プロジェクト: REALTOBIZ/mono
		// This must be implemented unless other depending methods
		// are overriden.
		public virtual GenericXmlSecurityToken RequestToken (EndpointAddress issuer, CardSelectionContext ctx)
		{
			return null;
		}
コード例 #8
0
ファイル: CardSelectorClient.cs プロジェクト: REALTOBIZ/mono
		public virtual GenericXmlSecurityToken RequestSelfIssuedToken (CardSelectionContext ctx, IdentityCard card)
		{
			Uri issuerUri = card.Issuer ?? new Uri (SelfIdentityIssuerUrl);
			X509Certificate2 cert = new X509Certificate2 (SelfIdentityIssuerCertificate);
			EndpointAddress issuer = new EndpointAddress (issuerUri, new X509CertificateEndpointIdentity (cert));
			return RequestToken (issuer, ctx);
		}
コード例 #9
0
ファイル: CardSelectorClient.cs プロジェクト: REALTOBIZ/mono
		public virtual GenericXmlSecurityToken RequestTrustedToken (CardSelectionContext ctx, IdentityCard card)
		{
			X509Certificate2 cert = new X509Certificate2 (card.Certificate);
			EndpointAddress issuer = new EndpointAddress (card.Issuer, new X509CertificateEndpointIdentity (cert));
			return RequestToken (issuer, ctx);
		}
コード例 #10
0
ファイル: CardSelectorClient.cs プロジェクト: REALTOBIZ/mono
		GenericXmlSecurityToken GetToken (
			XmlElement target, XmlElement issuer,
			Collection<XmlElement> parameters,
			Uri policyNoticeLink, int policyNoticeVersion)
		{
			Collection<ClaimTypeRequirement> reqs = new Collection<ClaimTypeRequirement> ();
			Collection<XmlElement> alist = new Collection<XmlElement> ();
			foreach (XmlElement el in parameters) {
				if (el.LocalName == "Claims" && el.NamespaceURI == Constants.WstNamespace)
					foreach (XmlElement c in el.ChildNodes)
						reqs.Add (new ClaimTypeRequirement (c.GetAttribute ("Uri"), c.GetAttribute ("Optional") == "true"));
				else
					alist.Add (el);
			}

			CardSelectionContext ctx = new CardSelectionContext (
				EndpointAddress.ReadFrom (XmlDictionaryReader.CreateDictionaryReader (new XmlNodeReader (target))),
				EndpointAddress.ReadFrom (XmlDictionaryReader.CreateDictionaryReader (new XmlNodeReader (issuer))),
				reqs,
				alist,
				policyNoticeLink,
				policyNoticeVersion);

			IdentityCard card = SelectCardToSend (ctx);

			if (card.Issuer != null)
				// process WS-Trust RST
				return RequestTrustedToken (ctx, card);
			else
				return RequestSelfIssuedToken (ctx, card);
		}