Ejemplo n.º 1
0
        public List <IdentityProvider> getIdentityProviders()
        {
            UPSBrowserLogger.LogDebug(loggingCategory, "getIdentityProviders invoked");
            List <IdentityProvider> identityProvidersToReturn = new List <IdentityProvider>();

            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    UPSBrowserLogger.LogDebug(loggingCategory, "Running with elevated privileges");

                    try
                    {
                        SPContext spContext                  = Microsoft.SharePoint.SPContext.Current;
                        SPWebApplication webApp              = spContext.Site.WebApplication;
                        SPUrlZone spUrlZone                  = spContext.Site.Zone;
                        SPIisSettings spIisSettings          = webApp.GetIisSettingsWithFallback(spUrlZone);
                        SPSecurityTokenServiceManager sptMgr = SPSecurityTokenServiceManager.Local;

                        foreach (SPAuthenticationProvider prov in spIisSettings.ClaimsAuthenticationProviders)
                        {
                            if (prov.GetType() == typeof(Microsoft.SharePoint.Administration.SPTrustedAuthenticationProvider))
                            {
                                var lp =
                                    from SPTrustedLoginProvider spt in
                                    sptMgr.TrustedLoginProviders
                                    where spt.DisplayName == prov.DisplayName
                                    select spt;

                                if ((lp != null) && (lp.Count() > 0))
                                {
                                    SPTrustedLoginProvider loginProv = lp.First();
                                    identityProvidersToReturn.Add(new IdentityProvider
                                    {
                                        Name        = loginProv.Name,
                                        DisplayName = loginProv.DisplayName,
                                        Description = loginProv.Description,
                                    });
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        UPSBrowserLogger.LogError(loggingCategory, e.Message);
                    };
                });
            }
            catch (System.Exception e)
            {
                UPSBrowserLogger.LogError(loggingCategory, $"Error while trying to elevate privileges: {e.Message}");
            };

            return(identityProvidersToReturn);
        }
        private void button3_Click(object sender, EventArgs e)
        {
            SPSecurityTokenServiceManager manager = SPSecurityTokenServiceManager.Local;

            string providerName = (string)listBox1.SelectedItem;

            SPTrustedLoginProvider provider = manager.TrustedLoginProviders[providerName];

            manager.TrustedLoginProviders.Remove(provider.Id);
            manager.Update();
        }
        private static void Main()
        {
            SPSecurity.RunWithElevatedPrivileges(delegate
            {
                var farm = SPFarm.Local;

                var service = farm.Services.GetValue <SPWebService>("");

                SPSecurityTokenServiceManager sptMgr = SPSecurityTokenServiceManager.Local;

                Console.WriteLine("list of authentication providers");
                foreach (SPWebApplication spWebApplication in service.WebApplications)
                {
                    Console.WriteLine("");
                    Console.WriteLine("");
                    Console.WriteLine("----------------------------------------");
                    Console.WriteLine("Web Application name : " + spWebApplication.Name);
                    Console.WriteLine("");
                    foreach (KeyValuePair <SPUrlZone, SPIisSettings> spIisSettingse in spWebApplication.IisSettings)
                    {
                        Console.WriteLine(spIisSettingse.Key + " : " + spWebApplication.IisSettings[spIisSettingse.Key].AuthenticationMode.ToString());

                        SPIisSettings theSettings = spWebApplication.GetIisSettingsWithFallback(spIisSettingse.Key);

                        //Console.WriteLine("IsTrustedClaimsAuthenticationProvider : " + theSettings.UseTrustedClaimsAuthenticationProvider);

                        if (theSettings.ClaimsAuthenticationProviders != null)                                          //&& theSettings.UseTrustedClaimsAuthenticationProvider
                        {
                            //get the list of authentication providers associated with the zone
                            foreach (SPAuthenticationProvider prov in theSettings.ClaimsAuthenticationProviders)
                            {
                                //get the SPTrustedLoginProvider using the DisplayName
                                SPAuthenticationProvider prov1 = prov;
                                var lp = from SPTrustedLoginProvider spt in sptMgr.TrustedLoginProviders
                                         where spt.DisplayName == prov1.DisplayName
                                         select spt;

                                //there should only be one match, so retrieve that
                                var loginProviders = lp as SPTrustedLoginProvider[] ?? lp.ToArray();
                                if ((loginProviders.Any()))
                                {
                                    //get the login provider
                                    SPTrustedLoginProvider provider = loginProviders.First();
                                    Console.WriteLine("Claims provider name : " + provider.ClaimProviderName);
                                }
                            }
                        }
                    }
                    Console.WriteLine("----------------------------------------");
                }
                Console.ReadLine();
                Console.ReadKey();
            });
        }
        private void button2_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            SPSecurityTokenServiceManager    manager   = SPSecurityTokenServiceManager.Local;
            SPTrustedLoginProviderCollection providers = manager.TrustedLoginProviders;

            foreach (SPTrustedLoginProvider provider in providers)
            {
                listBox1.Items.Clear();
                listBox1.Items.Add(provider.Name);
            }
        }
        private void button4_Click(object sender, EventArgs e)
        {
            SPSecurityTokenServiceManager manager = SPSecurityTokenServiceManager.Local;

            string providerName = (string)listBox1.SelectedItem;

            SPTrustedLoginProvider provider = manager.TrustedLoginProviders[providerName];

            provider.UseWReplyParameter = true;
            provider.ProviderRealm      = "https://spdev0223/_trust/";
            provider.ProviderUri        = new Uri("http://localhost:48924/WingtipSTS/default.aspx");


            provider.Update();

            manager.Update();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            List <SPTrustedClaimTypeInformation> claimMapping = new List <SPTrustedClaimTypeInformation>();
            List <string> strClaimMapping = new List <string>();

            SPTrustedClaimTypeInformation idClaim    = new SPTrustedClaimTypeInformation("EmailAddress", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress");
            SPTrustedClaimTypeInformation titleClaim = new SPTrustedClaimTypeInformation("Title", "http://schemas.wingtip.com/sharepoint/2009/08/claims/title", "http://schemas.wingtip.com/sharepoint/2009/08/claims/title");

            titleClaim.AcceptOnlyKnownClaimValues = true;

            idClaim.AddKnownClaimValue("*****@*****.**");
            idClaim.AddKnownClaimValue("*****@*****.**");
            idClaim.AddKnownClaimValue("*****@*****.**");

            titleClaim.AddKnownClaimValue("Engineer");
            titleClaim.AddKnownClaimValue("Manager");
            titleClaim.AddKnownClaimValue("CEO");

            //creating the string[] for all claims, this is required for the construction of SPTrustedLoginProvider
            strClaimMapping.Add(idClaim.InputClaimType);
            strClaimMapping.Add(titleClaim.InputClaimType);


            X509Certificate2 ImportTrustCertificate = new X509Certificate2(@"C:\StudentFiles\LabFiles\Module_6\Resources\STSTestCertPub.cer");

            claimMapping.Add(idClaim);
            claimMapping.Add(titleClaim);

            SPSecurityTokenServiceManager manager  = SPSecurityTokenServiceManager.Local;
            SPTrustedLoginProvider        provider = new SPTrustedLoginProvider(
                manager,
                "WingtipSTS",
                "WingtipSTS",
                new Uri("http://localhost:48924/WingtipSTS/default.aspx"),
                "https://spdev0223/_trust/",
                strClaimMapping.ToArray(),
                idClaim);



            foreach (SPTrustedClaimTypeInformation claimTypeInfo in claimMapping)
            {
                if (claimTypeInfo.InputClaimType == provider.IdentityClaimTypeInformation.InputClaimType)
                {
                    continue;
                }
                provider.AddClaimTypeInformation(claimTypeInfo);
            }

            if (ImportTrustCertificate != null)
            {
                provider.SigningCertificate = ImportTrustCertificate;
            }


            //provider.ClaimProviderName = "ContosoCRMClaimProvider";

            provider.UseWReplyParameter = true;

            manager.TrustedLoginProviders.Add(provider);
            manager.Update();
        }