コード例 #1
0
        public User Authenticate(OidcUser oidcUser)
        {
            // Get Identity Provider
            var providerName = "OpenIDConnect";
            AuthenticationProviderElement externalProvider = Config.Get <AuthenticationConfig>().SecurityTokenService
                                                             .AuthenticationProviders.Values
                                                             .FirstOrDefault(x => x.Name == providerName);

            if (externalProvider != null)
            {
                UserManager userManager = UserManager.GetManager(externalProvider.DataProviderName);

                // Find sitefinity user
                var sitefinityUser = userManager.GetUser(oidcUser.Email);

                if (sitefinityUser != null)
                {
                    // Update sitefinity user

                    SystemManager.RunWithElevatedPrivilege(p => {
                        try
                        {
                            UpdateUser(externalProvider.DataProviderName, externalProvider.Name, oidcUser.Email,
                                       oidcUser.Id.ToString(), oidcUser.FirstName, oidcUser.LastName);
                        }
                        catch (Exception ex)
                        {
                            Log.Write($"Failed to update user. Message: {ex.Message}", ConfigurationPolicy.Authentication);
                            throw;
                        }
                    });
                }
                else
                {
                    // Create sitefinity user

                    SystemManager.RunWithElevatedPrivilege(p => {
                        try
                        {
                            CreateUser(externalProvider.DataProviderName, externalProvider.Name, oidcUser.Email,
                                       oidcUser.Id.ToString(), oidcUser.FirstName, oidcUser.LastName);
                        }
                        catch (Exception ex)
                        {
                            Log.Write($"Failed to create user. Message: {ex.Message}", ConfigurationPolicy.Authentication);
                            throw;
                        }
                    });
                }

                sitefinityUser = userManager.GetUser(oidcUser.Email);

                return(sitefinityUser);
            }

            return(null);
        }
        public AuthenticationProviderElement GetAuthenticationProviderElement()
        {
            var authenticationProviderElement = new AuthenticationProviderElement
            {
                Name            = IdentityProviderName,
                IsGuestProvider = true,
                LinkHtml        = "<div style=\"padding: 20px 20px 30px; text-align: center; \"><button class=\"btn btn-success\" type=\"button\" ng-click=\"signIn()\" focus-on=\"guest\" ng-disabled=\"isSubmitting.busy\">Sign in as a guest</button></div>"
            };

            return(authenticationProviderElement);
        }
コード例 #3
0
        public AuthenticationProviderElement GetAuthenticationProviderElement(string siteBaseUri)
        {
            var authenticationProviderElement = new AuthenticationProviderElement
            {
                Name     = IdentityProviderName,
                LinkHtml = LoginLinkHtml(siteBaseUri)
            };

            authenticationProviderElement.Links.Add(AuthenticationProviderElement.AuthenticateLinkName, siteBaseUri + AuthenticateUri);

            return(authenticationProviderElement);
        }
コード例 #4
0
        public AuthenticationProviderElement GetAuthenticationProviderElement()
        {
            var authenticationProviderElement = new AuthenticationProviderElement
            {
                Name = IdentityProviderName,
                FormsLoginEnabled = configurationStore.GetAllowFormsAuthenticationForDomainUsers(),
                LinkHtml          = LinkHtml()
            };

            authenticationProviderElement.Links.Add(AuthenticationProviderElement.AuthenticateLinkName, "~" + ChallengeUri);
            return(authenticationProviderElement);
        }
コード例 #5
0
        public AuthenticationProviderElement GetAuthenticationProviderElement()
        {
            var authenticationProviderElement = new AuthenticationProviderElement
            {
                Name     = IdentityProviderName,
                LinkHtml = LoginLinkHtml()
            };

            authenticationProviderElement.Links.Add(AuthenticationProviderElement.AuthenticateLinkName, "~" + AuthenticateUri);

            return(authenticationProviderElement);
        }
コード例 #6
0
        public AuthenticationProviderElement GetAuthenticationProviderElement(string requestDirectoryPath)
        {
            var authenticationProviderElement = new AuthenticationProviderElement
            {
                Name = IdentityProviderName,
                FormsLoginEnabled        = configurationStore.GetAllowFormsAuthenticationForDomainUsers(),
                FormsUsernameIdentifiers = new [] { @"\", "@" },
                LinkHtml = LinkHtml(requestDirectoryPath)
            };

            authenticationProviderElement.Links.Add(AuthenticationProviderElement.FormsAuthenticateLinkName, "~" + AuthenticateUri);
            authenticationProviderElement.Links.Add(AuthenticationProviderElement.AuthenticateLinkName, "~" + ChallengeUri);
            return(authenticationProviderElement);
        }