public ActionResult RemoveExternalLogins()
        {
            ICollection <OAuthAccount> accounts       = OAuthWebSecurity.GetAccountsFromUserName(User.Identity.Name);
            List <ExternalLogin>       externalLogins = new List <ExternalLogin>();

            foreach (OAuthAccount account in accounts)
            {
                AuthenticationClientData clientData = OAuthWebSecurity.GetOAuthClientData(account.Provider);

                externalLogins.Add(new ExternalLogin
                {
                    Provider            = account.Provider,
                    ProviderDisplayName = clientData.DisplayName,
                    ProviderUserId      = account.ProviderUserId,
                });
            }

            ViewBag.ShowRemoveButton = externalLogins.Count > 1 || OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name));
            return(PartialView("_RemoveExternalLoginsPartial", externalLogins));
        }
        public List <AccountMembershipViewModel> GetAllRelatedAccountMembershipViewModels()
        {
            var result             = new List <AccountMembershipViewModel>();
            var listOAthMembership = this.Session.QueryOver <OAuthMembership>().Where(x => x.UserProfile.Id == User.Current.UserID).List();

            if (listOAthMembership != null && listOAthMembership.Any())
            {
                listOAthMembership.Each(x =>
                {
                    AuthenticationClientData clientData = OAuthWebSecurity.GetOAuthClientData(x.Provider);
                    result.Add(new AccountMembershipViewModel()
                    {
                        ID                  = x.Id,
                        OAuthProvider       = x.Provider,
                        OAuthProviderUserID = x.ProviderUserID,
                        ProviderDisplayName = clientData.DisplayName,
                    });
                });
            }
            return(result);
        }
        public void RegisterClient(IAuthenticationClient client, string displayName, IDictionary <string, object> extraData)
        {
            if (client == null)
            {
                throw new ArgumentNullException("client");
            }

            if (String.IsNullOrEmpty(client.ProviderName))
            {
                throw new ArgumentException("InvalidServiceProviderName", "client");
            }

            if (_authenticationClients.ContainsKey(client.ProviderName))
            {
                throw new ArgumentException("ServiceProviderNameExists", "client");
            }

            var clientData = new AuthenticationClientData(client, displayName, extraData);

            _authenticationClients.Add(client.ProviderName, clientData);
        }
Example #4
0
        public ExternalAccounts ExternalAccounts()
        {
            ICollection <OAuthAccount> accounts       = OAuthWebSecurity.GetAccountsFromUserName(User.Identity.Name);
            List <ExternalLogin>       externalLogins = new List <ExternalLogin>();

            foreach (OAuthAccount account in accounts)
            {
                AuthenticationClientData clientData = OAuthWebSecurity.GetOAuthClientData(account.Provider);

                externalLogins.Add(new ExternalLogin
                {
                    Provider            = account.Provider,
                    ProviderDisplayName = clientData.DisplayName,
                    ProviderUserId      = account.ProviderUserId,
                });
            }
            ExternalAccounts externalLoginList = new ExternalAccounts();

            externalLoginList.ExternalLogins   = externalLogins;
            externalLoginList.ShowRemoveButton = externalLogins.Count > 1 || OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name));
            return(externalLoginList);
        }
Example #5
0
        public ActionResult RemoveExternalLogins()
        {
            IEnumerable <OAuthAccount> accounts = _membershipProvider.GetOAuthAccountsFromEmailAddress(User.Identity.Name);
            var externalLogins = new List <ExternalLoginModel>();

            foreach (OAuthAccount account in accounts)
            {
                AuthenticationClientData clientData = _membershipProvider.GetOAuthClientData(account.Provider);
                if (clientData == null)
                {
                    continue;
                }

                externalLogins.Add(new ExternalLoginModel {
                    Provider            = account.Provider,
                    ProviderDisplayName = clientData.DisplayName,
                    ProviderUserId      = account.ProviderUserId,
                    Username            = account.Username
                });
            }

            ViewBag.ShowRemoveButton = externalLogins.Count > 1 || _membershipProvider.HasLocalAccount(User.Identity.Name);
            return(PartialView("_RemoveExternalLoginsPartial", externalLogins));
        }
Example #6
0
        /// <summary>
        /// Requests the OAuth authentication.
        /// </summary>
        /// <param name="provider">The provider.</param>
        /// <param name="returnUrl">The return URL.</param>
        public void RequestOAuthAuthentication(string provider, string returnUrl)
        {
            AuthenticationClientData client = _authenticationClients[provider];

            _applicationEnvironment.RequestAuthentication(client.AuthenticationClient, this, returnUrl);
        }
Example #7
0
 public OAuthClientData GetClientData(AuthenticationClientData clientData)
 {
     return(Mapper.Map <AuthenticationClientData, OAuthClientData>(clientData));
 }
Example #8
0
 //
 // Summary:
 //     Indicates whether the provider gets an OAuth client data.
 //
 // Parameters:
 //   providerName:
 //     The provider name.
 //
 //   clientData:
 //     The client data.
 //
 // Returns:
 //     true if the provider gets an OAuth client data; otherwise, false.
 public static bool TryGetOAuthClientData(string providerName, out AuthenticationClientData clientData)
 {
     return(OAuthWebSecurity.TryGetOAuthClientData(providerName, out clientData));
 }