Exemple #1
0
        private static ICredentials RebuildCredentials(ICredentials credentials, string redirectUrl)
        {
            CredentialCache cc = credentials as CredentialCache;

            if (cc != null)
            {
                IEnumerator iterate = cc.GetEnumerator();
                while (iterate.MoveNext())
                {
                    NetworkCredential c = iterate.Current as NetworkCredential;
                    if (c != null)
                    {
                        // we just take the first one to recreate
                        string domainUser = c.Domain;
                        if (!string.IsNullOrEmpty(domainUser))
                        {
                            domainUser = domainUser + @"\";
                        }
                        domainUser = String.Concat(domainUser, c.UserName);
                        return(FeedSource.CreateCredentialsFrom(redirectUrl, domainUser, c.Password));
                    }
                }
            }
            // give up/forward original credentials:
            return(credentials);
        }
Exemple #2
0
        public static void GetEnumerator_ResetIndexGetCurrent_Invalid(CredentialCache cc)
        {
            IEnumerator enumerator = cc.GetEnumerator();

            enumerator.Reset();
            Assert.Throws <InvalidOperationException>(() => enumerator.Current);
        }
Exemple #3
0
        public static void GetEnumerator_MoveNextIndex_Invalid()
        {
            CredentialCache cc         = new CredentialCache();
            IEnumerator     enumerator = cc.GetEnumerator();

            enumerator.MoveNext();

            Assert.Throws <InvalidOperationException>(() => enumerator.Current);
        }
Exemple #4
0
        public static void GetEnumerator_MoveNextSynchronization_Invalid()
        {
            //An InvalidOperationException is thrown when moving the enumerator
            //when a credential is added to the cache after getting the enumerator
            CredentialCache cc         = HostPortAuthenticationTypeCredentialCache();
            IEnumerator     enumerator = cc.GetEnumerator();

            cc.Add(uriPrefix1, authenticationType1, credential1);

            Assert.Throws <InvalidOperationException>(() => enumerator.MoveNext());
        }
Exemple #5
0
        public static void GetEnumerator_Enumerate_Success()
        {
            CredentialCache cc         = HostPortAuthenticationTypeCredentialCache();
            IEnumerator     enumerator = cc.GetEnumerator();

            Assert.NotNull(enumerator);

            while (enumerator.MoveNext())
            {
                object item = enumerator.Current;
                Assert.NotNull(item);
            }
        }
// <Snippet1>
    public static void GetPage(string url, string userName, string password, string domainName)
    {
        try
        {
            CredentialCache myCredentialCache = new CredentialCache();
            // Dummy Credentials used here.
            myCredentialCache.Add(new Uri("http://microsoft.com/"), "Basic", new NetworkCredential("user1", "passwd1", "domain1"));
            myCredentialCache.Add(new Uri("http://msdn.com/"), "Basic", new NetworkCredential("user2", "passwd2", "domain2"));

            myCredentialCache.Add(new Uri(url), "Basic", new NetworkCredential(userName, password, domainName));
            // Creates a webrequest with the specified url.
            WebRequest myWebRequest = WebRequest.Create(url);
            myWebRequest.Credentials = myCredentialCache;
            IEnumerator listCredentials = myCredentialCache.GetEnumerator();

            Console.WriteLine("\nDisplaying credentials stored in CredentialCache: ");
            while (listCredentials.MoveNext())
            {
                Display((NetworkCredential)listCredentials.Current);
            }
            Console.WriteLine("\nNow Displaying the same using 'foreach' : ");
            // Can use foreach with CredentialCache(Since GetEnumerator function of IEnumerable has been implemented by 'CredentialCache' class.
            foreach (NetworkCredential credential in myCredentialCache)
            {
                Display(credential);
            }
            // Send the request and waits for response.
            WebResponse myWebResponse = myWebRequest.GetResponse();

            // Process response here.

            Console.WriteLine("\nResponse Received.");
            myWebResponse.Close();
        }
        catch (WebException e)
        {
            if (e.Response != null)
            {
                Console.WriteLine("\r\nFailed to obtain a response. The following error occurred : {0}", ((HttpWebResponse)(e.Response)).StatusDescription);
            }
            else
            {
                Console.WriteLine("\r\nFailed to obtain a response. The following error occurred : {0}", e.Status);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("\nThe following exception was raised : {0}", e.Message);
        }
    }
Exemple #7
0
        public static void GetEnumerator_MoveNextSynchronization_Invalid(CredentialCache cc, bool addUri)
        {
            //An InvalidOperationException is thrown when moving the enumerator
            //when a credential is added to the cache after getting the enumerator
            IEnumerator enumerator = cc.GetEnumerator();

            if (addUri)
            {
                cc.Add(new Uri("http://whatever:80"), authenticationType1, credential1);
            }
            else
            {
                cc.Add("whatever", 80, authenticationType1, credential1);
            }

            Assert.Throws <InvalidOperationException>(() => enumerator.MoveNext());
        }
Exemple #8
0
        public static void GetEnumerator_Enumerate_Success(CredentialCache cc, int count)
        {
            IEnumerator enumerator = cc.GetEnumerator();

            Assert.NotNull(enumerator);

            for (int iterations = 0; iterations < 2; iterations++)
            {
                Assert.Throws <InvalidOperationException>(() => enumerator.Current);

                for (int i = 0; i < count; i++)
                {
                    Assert.True(enumerator.MoveNext());
                    Assert.NotNull(enumerator.Current);
                }

                Assert.False(enumerator.MoveNext());
                Assert.Throws <InvalidOperationException>(() => enumerator.Current);

                enumerator.Reset();
            }
        }
 /// <inheritdoc />
 public IEnumerator GetEnumerator()
 {
     return(_cache.GetEnumerator());
 }
        public static void GetEnumerator_MoveNextIndex_Invalid()
        {
            CredentialCache cc = new CredentialCache();
            IEnumerator enumerator = cc.GetEnumerator();
            enumerator.MoveNext();

            Assert.Throws<InvalidOperationException>(() => enumerator.Current);
        }
Exemple #11
0
 public static void GetEnumerator_ResetIndexGetCurrent_Invalid(CredentialCache cc)
 {
     IEnumerator enumerator = cc.GetEnumerator();
     enumerator.Reset();
     Assert.Throws<InvalidOperationException>(() => enumerator.Current);
 }
Exemple #12
0
        public static void GetEnumerator_CurrentSynchronization_Invalid(CredentialCache cc, bool addUri)
        {
            //An InvalidOperationException is thrown when getting the current enumerated object
            //when a credential is added to the cache after getting the enumerator
            IEnumerator enumerator = cc.GetEnumerator();

            enumerator.MoveNext();

            if (addUri)
            {
                cc.Add(new Uri("http://whatever:80"), authenticationType1, credential1);
            }
            else
            {
                cc.Add("whatever", 80, authenticationType1, credential1);
            }

            Assert.Throws<InvalidOperationException>(() => enumerator.Current);
        }
Exemple #13
0
        public static void GetEnumerator_Enumerate_Success(CredentialCache cc, int count)
        {
            IEnumerator enumerator = cc.GetEnumerator();

            Assert.NotNull(enumerator);

            for (int iterations = 0; iterations < 2; iterations++)
            {
                Assert.Throws<InvalidOperationException>(() => enumerator.Current);

                for (int i = 0; i < count; i++)
                {
                    Assert.True(enumerator.MoveNext());
                    Assert.NotNull(enumerator.Current);
                }

                Assert.False(enumerator.MoveNext());
                Assert.Throws<InvalidOperationException>(() => enumerator.Current);

                enumerator.Reset();
            }
        }