public static OwaClientSecurityContextIdentity CreateFromLiveIDIdentity(LiveIDIdentity liveIDIdentity)
        {
            if (liveIDIdentity == null)
            {
                throw new ArgumentNullException("liveIDIdentity");
            }
            OwaLiveIDIdentity owaLiveIDIdentity = new OwaLiveIDIdentity(liveIDIdentity.Sid, liveIDIdentity.HasAcceptedAccruals);

            owaLiveIDIdentity.userOrganizationProperties = liveIDIdentity.UserOrganizationProperties;
            owaLiveIDIdentity.DomainName = SmtpAddress.Parse(liveIDIdentity.MemberName).Domain;
            try
            {
                ClientSecurityContext clientSecurityContext = liveIDIdentity.CreateClientSecurityContext();
                owaLiveIDIdentity.UpgradePartialIdentity(clientSecurityContext, liveIDIdentity.PrincipalName, string.Empty);
            }
            catch (AuthzException ex)
            {
                if (ex.InnerException is Win32Exception)
                {
                    OwaDiagnostics.LogEvent(ClientsEventLogConstants.Tuple_ErrorCreatingClientContext, string.Empty, new object[]
                    {
                        owaLiveIDIdentity.UserSid.ToString(),
                        ex.ToString()
                    });
                    throw new OwaCreateClientSecurityContextFailedException("There was a problem creating the Client Security Context.");
                }
                throw;
            }
            return(owaLiveIDIdentity);
        }
        public override void Refresh(OwaIdentity identity)
        {
            if (identity == null)
            {
                throw new ArgumentNullException("identity");
            }
            base.Refresh(identity);
            OwaLiveIDIdentity owaLiveIDIdentity = identity as OwaLiveIDIdentity;

            if (owaLiveIDIdentity != null)
            {
                this.hasAcceptedAccruals = owaLiveIDIdentity.HasAcceptedAccruals;
            }
        }