Пример #1
0
        /// <summary>
        /// Creates a 'wsignout1.0' message using the current contents of this <see cref="WsFederationMessage"/>.
        /// </summary>
        /// <returns>The uri to use for a redirect.</returns>
        public string CreateSignOutUrl()
        {
            WsFederationMessage wsFederationMessage = new WsFederationMessage(this);

            wsFederationMessage.Wa = WsFederationActions.SignOut;
            return(wsFederationMessage.BuildRedirectUrl());
        }
        public static bool AreEqual(WsFederationMessage wsFederationMessage1, WsFederationMessage wsFederationMessage2)
        {
            if (!MessageComparer.AreEqual(wsFederationMessage1 as AuthenticationProtocolMessage, wsFederationMessage2 as AuthenticationProtocolMessage))
            {
                return false;
            }

            return true;
        }
Пример #3
0
        /// <summary>
        /// Creates a <see cref="WsFederationMessage"/> from the contents of a <see cref="Uri"/>.
        /// </summary>
        /// <param name="uri"> uri string to extract parameters.</param>
        /// <returns>An instance of <see cref="WsFederationMessage"/>.</returns>
        /// <remarks><see cref="WsFederationMessage"/>.IssuerAddress is NOT set/>. Parameters are parsed from <see cref="Uri.Query"/>.</remarks>
        public static WsFederationMessage FromUri(Uri uri)
        {
            if (uri != null && uri.Query.Length > 1)
            {
                return(WsFederationMessage.FromQueryString(uri.Query.Substring(1)));
            }

            return(new WsFederationMessage());
        }
        /// <summary>
        /// Creates a <see cref="WsFederationMessage"/> from the contents of a query string.
        /// </summary>
        /// <param name="queryString"> query string to extract parameters.</param>
        /// <returns>An instance of <see cref="WsFederationMessage"/>.</returns>
        /// <remarks>If 'queryString' is null or whitespace, a default <see cref="WsFederationMessage"/> is returned. Parameters are parsed from <see cref="Uri.Query"/>.</remarks>
        public static WsFederationMessage FromQueryString(string queryString)
        {
            WsFederationMessage wsFederationMessage = new WsFederationMessage();
            if (!string.IsNullOrWhiteSpace(queryString))
            {
                wsFederationMessage.SetParameters(HttpUtility.ParseQueryString(query: queryString));
            } 

            return wsFederationMessage;
        }
Пример #5
0
        /// <summary>
        /// Creates a <see cref="WsFederationMessage"/> from the contents of a query string.
        /// </summary>
        /// <param name="queryString"> query string to extract parameters.</param>
        /// <returns>An instance of <see cref="WsFederationMessage"/>.</returns>
        /// <remarks>If 'queryString' is null or whitespace, a default <see cref="WsFederationMessage"/> is returned. Parameters are parsed from <see cref="Uri.Query"/>.</remarks>
        public static WsFederationMessage FromQueryString(string queryString)
        {
            WsFederationMessage wsFederationMessage = new WsFederationMessage();

            if (!string.IsNullOrWhiteSpace(queryString))
            {
                wsFederationMessage.SetParameters(HttpUtility.ParseQueryString(query: queryString));
            }

            return(wsFederationMessage);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="WsFederationMessage"/> class.
        /// </summary>
        /// <param name="wsFederationMessage"> message to copy.</param>        
        public WsFederationMessage(WsFederationMessage wsFederationMessage)
        {
            if (wsFederationMessage == null)
            {
                return;
            }

            foreach (KeyValuePair<string, string> keyValue in wsFederationMessage.Parameters)
            {
                SetParameter(keyValue.Key, keyValue.Value);
            }

            IssuerAddress = wsFederationMessage.IssuerAddress;
        }
Пример #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WsFederationMessage"/> class.
        /// </summary>
        /// <param name="wsFederationMessage"> message to copy.</param>
        public WsFederationMessage(WsFederationMessage wsFederationMessage)
        {
            if (wsFederationMessage == null)
            {
                return;
            }

            foreach (KeyValuePair <string, string> keyValue in wsFederationMessage.Parameters)
            {
                SetParameter(keyValue.Key, keyValue.Value);
            }

            IssuerAddress = wsFederationMessage.IssuerAddress;
        }
        public void WsFederationAuthenticationMessage_Constructors()
        {
            WsFederationMessage wsFederationMessage = new WsFederationMessage();
            Assert.AreEqual(wsFederationMessage.IssuerAddress, string.Empty);

            wsFederationMessage = new WsFederationMessage("http://www.got.jwt.com");
            Assert.AreEqual(wsFederationMessage.IssuerAddress, "http://www.got.jwt.com");

            ExpectedException expectedException = ExpectedException.ArgumentNullException("issuerAddress");
            try
            {
                wsFederationMessage = new WsFederationMessage((string)null);
                expectedException.ProcessNoException();
            }
            catch(Exception exception)
            {
                expectedException.ProcessException(exception);
            }
        }
        public void WsFederationAuthenticationMessage_Defaults()
        {
            WsFederationMessage wsFederationMessage = new WsFederationMessage();

            Assert.AreEqual(wsFederationMessage.IssuerAddress, string.Empty);
            Assert.IsNull(wsFederationMessage.Wa);
            Assert.IsNull(wsFederationMessage.Wauth);
            Assert.IsNull(wsFederationMessage.Wct);
            Assert.IsNull(wsFederationMessage.Wctx);
            Assert.IsNull(wsFederationMessage.Wencoding);
            Assert.IsNull(wsFederationMessage.Wfed);
            Assert.IsNull(wsFederationMessage.Wfresh);
            Assert.IsNull(wsFederationMessage.Whr);
            Assert.IsNull(wsFederationMessage.Wp);
            Assert.IsNull(wsFederationMessage.Wpseudo);
            Assert.IsNull(wsFederationMessage.Wpseudoptr);
            Assert.IsNull(wsFederationMessage.Wreply);
            Assert.IsNull(wsFederationMessage.Wreq);
            Assert.IsNull(wsFederationMessage.Wreqptr);
            Assert.IsNull(wsFederationMessage.Wres);
            Assert.IsNull(wsFederationMessage.Wresult);
            Assert.IsNull(wsFederationMessage.Wresultptr);
            Assert.IsNull(wsFederationMessage.Wtrealm);
        }
        public void WsFederationAuthenticationMessage_Publics()
        {
            string issuerAdderss = @"http://www.gotjwt.com";
            string wreply = @"http://www.relyingparty.com";
            string wct = Guid.NewGuid().ToString();
            WsFederationMessage wsFederationMessage = new WsFederationMessage
            {
                IssuerAddress = issuerAdderss,
                Wreply = wreply,
                Wct = wct,
            };

            wsFederationMessage.SetParameter("bob", null);
            wsFederationMessage.Parameters.Add("bob", null);
            string uriString = wsFederationMessage.BuildRedirectUrl();
            Uri uri = new Uri(uriString);

            WsFederationMessage wsFederationMessageReturned = WsFederationMessage.FromQueryString(uri.Query);
            wsFederationMessageReturned.IssuerAddress = issuerAdderss;
            wsFederationMessageReturned.Parameters.Add("bob", null);
            Assert.IsTrue(MessageComparer.AreEqual(wsFederationMessage, wsFederationMessageReturned));

            wsFederationMessageReturned = WsFederationMessage.FromUri(uri);
            wsFederationMessageReturned.IssuerAddress = issuerAdderss;
            wsFederationMessageReturned.Parameters.Add("bob", null);
            Assert.IsTrue(MessageComparer.AreEqual(wsFederationMessage, wsFederationMessageReturned));
        }
        public void WsFederationAuthenticationMessage_GetSets()
        {
            WsFederationMessage wsFederationMessage = new WsFederationMessage();

            Type type = typeof(WsFederationParameterNames);
            FieldInfo[] fields = type.GetFields(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Static);
            foreach( FieldInfo fieldInfo in fields)
            {
                TestUtilities.GetSet(wsFederationMessage, fieldInfo.Name, null, new object[]{ fieldInfo.Name, null, fieldInfo.Name + fieldInfo.Name } );
            }
        }
 /// <summary>
 /// Creates a 'wsignout1.0' message using the current contents of this <see cref="WsFederationMessage"/>.
 /// </summary>
 /// <returns>The uri to use for a redirect.</returns>
 public string CreateSignOutUrl()
 {
     WsFederationMessage wsFederationMessage = new WsFederationMessage(this);
     wsFederationMessage.Wa = WsFederationActions.SignOut;
     return wsFederationMessage.BuildRedirectUrl();
 }