Example #1
0
        internal void AuthenticateUser(AuthenticationMode authMode = AuthenticationMode.Authorize,
                                       TokenValidationPolicy tokenValidationPolicy = TokenValidationPolicy.EveryLogin, AuthValidationMode authValidationMode = AuthValidationMode.Graceful,
                                       string email = null, string appSecret = null)
        {
            if (AuthenticationMode.Identify.Equals(authMode) && String.IsNullOrEmpty(appSecret))
            {
                throw new Exception("Internal error: AppSecret must be provided when Identify function is used"); //ResourceManager.Current.MainResourceMap
            }
            bool needsLogin = TokenValidationPolicy.EveryLogin.Equals(tokenValidationPolicy);

            if (!needsLogin && TokenValidationPolicy.OnNewVersion.Equals(tokenValidationPolicy))
            {
                string lastAuthorizedVersion = HockeyClient.Current.AsInternal().PlatformHelper.GetSettingValue(ConstantsUniversal.AuthLastAuthorizedVersionKey);
                needsLogin = (lastAuthorizedVersion == null) || (new Version(lastAuthorizedVersion) < new Version(HockeyClient.Current.AsInternal().VersionInfo));
            }

            if (needsLogin)
            {
                this.ShowLoginScreen(authMode, appSecret, email, authValidationMode);
            }
            else
            {
                this.ExecuteSuccessRedirectOrAction();
            }
        }
Example #2
0
        internal void AuthenticateUser(Uri successRedirect, AuthenticationMode authMode = AuthenticationMode.Authorize,
                                       TokenValidationPolicy tokenValidationPolicy      = TokenValidationPolicy.EveryLogin, AuthValidationMode authValidationMode = AuthValidationMode.Graceful,
                                       string email = null, string appSecret = null)
        {
            if (AuthenticationMode.Identify.Equals(authMode) && String.IsNullOrEmpty(appSecret))
            {
                throw new ApplicationException(LocalizedStrings.LocalizedResources.Authentication_AppSecretMissing);
            }
            this.SuccessRedirect = successRedirect;

            bool needsLogin = TokenValidationPolicy.EveryLogin.Equals(tokenValidationPolicy);

            if (!needsLogin && TokenValidationPolicy.OnNewVersion.Equals(tokenValidationPolicy))
            {
                string lastAuthorizedVersion = IsolatedStorageSettings.ApplicationSettings.GetValue(Constants.AuthLastAuthorizedVersionKey) as String;
                needsLogin = (lastAuthorizedVersion == null) || (new Version(lastAuthorizedVersion) < new Version(ManifestHelper.GetAppVersion()));
            }

            if (needsLogin)
            {
                ((PhoneApplicationFrame)Application.Current.RootVisual).Navigate(new Uri("/HockeyApp;component/Views/LoginPage.xaml?authmode=" + HttpUtility.UrlEncode(authMode.ToString())
                                                                                         + "&appsecret=" + HttpUtility.UrlEncode(appSecret)
                                                                                         + "&email=" + HttpUtility.UrlEncode(email ?? "")
                                                                                         + "&validationmode=" + HttpUtility.UrlEncode(authValidationMode.ToString() ?? ""), UriKind.Relative));
            }
            else
            {
                ((PhoneApplicationFrame)Application.Current.RootVisual).Navigate(successRedirect);
            }
        }
 public JweWrapper(byte[] token, KeyManagementAlgorithm keyManagementAlgorithm, EncryptionAlgorithm encryptionAlgorithm, TokenValidationPolicy policy)
 {
     _token = token;
     _keyManagementAlgorithm = keyManagementAlgorithm;
     _encryptionAlgorithm    = encryptionAlgorithm;
     Policy = policy;
 }
Example #4
0
        private Jwt?TryParse(byte[] data, TokenValidationPolicy policy)
        {
            if (!Jwt.TryParse(data, policy, out var document))
            {
                throw new System.Exception();
            }

            document.Dispose();
            return(document);
        }
        /// <summary>
        /// Identify user with hockeaypp auth. Opening a login page to require valid email address for app if needed
        /// </summary>
        /// <param name="this"></param>
        /// <param name="appSecret">Your app's app secret (see HockeyApp app page)</param>
        /// <param name="successRedirect">Page-URI to redirect to after successful login</param>
        /// <param name="navigationService">[optional] obsolete - not needed</param>
        /// <param name="eMail">[Optional] initial email</param>
        /// <param name="tokenValidationPolicy"><see cref="TokenValidationPolicy"/></param>
        /// <param name="authValidationMode"><see cref="AuthValidationMode"/></param>
        public static void IdentifyUser(this IHockeyClient @this, string appSecret,
            Uri successRedirect, NavigationService navigationService = null,
            string eMail = null,
            TokenValidationPolicy tokenValidationPolicy = TokenValidationPolicy.EveryLogin,
            AuthValidationMode authValidationMode = AuthValidationMode.Graceful)

        {
            @this.AsInternal().CheckForInitialization();
            AuthManager.Instance.AuthenticateUser(successRedirect, AuthenticationMode.Identify, 
                tokenValidationPolicy, authValidationMode, eMail, appSecret);
        }
 /// <summary>
 /// Inititate user identification and define a action to perform when authorization is successfull
 /// </summary>
 /// <param name="this">The this.</param>
 /// <param name="appSecret">The application secret from HockeyApp.</param>
 /// <param name="successAction">Action to perform when login is successfull</param>
 /// <param name="eMail">[Optional] E-Mail adress to prefill form</param>
 /// <param name="tokenValidationPolicy">[Optional] Default is EveryLogin</param>
 /// <param name="authValidationMode">[Optional] Default is Graceful</param>
 public static void IdentifyUser(this IHockeyClient @this, string appSecret,
     Action successAction, string eMail = null,
     TokenValidationPolicy tokenValidationPolicy = TokenValidationPolicy.EveryLogin,
     AuthValidationMode authValidationMode = AuthValidationMode.Graceful)
 {
     @this.AsInternal().CheckForInitialization();
     var authMan = AuthManager.Current;
     authMan.SuccessAction = successAction;
     authMan.AuthenticateUser(AuthenticationMode.Identify,
         tokenValidationPolicy, authValidationMode, eMail, appSecret);
 }
        /// <summary>
        /// Inititate user authorization and define a page navigate to when authorization is successfull
        /// </summary>
        /// <param name="this"></param>
        /// <param name="pageTypeForSuccessRedirect">Pagetype to navigate when login is successfull</param>
        /// <param name="eMail">[Optional] E-Mail adress to prefill form</param>
        /// <param name="tokenValidationPolicy">[Optional] Default is EveryLogin</param>
        /// <param name="authValidationMode">[Optional] Default is Graceful</param>
        public static void AuthorizeUser(this IHockeyClient @this,
                                         Type pageTypeForSuccessRedirect, string eMail = null,
                                         TokenValidationPolicy tokenValidationPolicy   = TokenValidationPolicy.EveryLogin,
                                         AuthValidationMode authValidationMode         = AuthValidationMode.Graceful)
        {
            @this.AsInternal().CheckForInitialization();
            var authMan = AuthManager.Current;

            authMan.SuccessRedirectPageType = pageTypeForSuccessRedirect;
            AuthManager.Current.AuthenticateUser(AuthenticationMode.Authorize,
                                                 tokenValidationPolicy, authValidationMode, eMail, null);
        }
        /// <summary>
        /// Inititate user identification and define a action to perform when authorization is successfull
        /// </summary>
        /// <param name="this">The this.</param>
        /// <param name="appSecret">The application secret from HockeyApp.</param>
        /// <param name="successAction">Action to perform when login is successfull</param>
        /// <param name="eMail">[Optional] E-Mail adress to prefill form</param>
        /// <param name="tokenValidationPolicy">[Optional] Default is EveryLogin</param>
        /// <param name="authValidationMode">[Optional] Default is Graceful</param>
        public static void IdentifyUser(this IHockeyClient @this, string appSecret,
                                        Action successAction, string eMail          = null,
                                        TokenValidationPolicy tokenValidationPolicy = TokenValidationPolicy.EveryLogin,
                                        AuthValidationMode authValidationMode       = AuthValidationMode.Graceful)
        {
            @this.AsInternal().CheckForInitialization();
            var authMan = AuthManager.Current;

            authMan.SuccessAction = successAction;
            authMan.AuthenticateUser(AuthenticationMode.Identify,
                                     tokenValidationPolicy, authValidationMode, eMail, appSecret);
        }
Example #9
0
 protected bool JwtCore(byte[] token, TokenValidationPolicy policy, out Jwt jwt)
 {
     return(Jwt.TryParse(token, policy, out jwt));
 }
 public JwsWrapper(byte[] token, SignatureAlgorithm algorithm, TokenValidationPolicy policy)
 {
     _token     = token;
     _algorithm = algorithm;
     Policy     = policy;
 }
 /// <summary>
 /// Inititate user authorization and define a page navigate to when authorization is successfull
 /// </summary>
 /// <param name="this"></param>
 /// <param name="pageTypeForSuccessRedirect">Pagetype to navigate when login is successfull</param>
 /// <param name="eMail">[Optional] E-Mail adress to prefill form</param>
 /// <param name="tokenValidationPolicy">[Optional] Default is EveryLogin</param>
 /// <param name="authValidationMode">[Optional] Default is Graceful</param>
 public static void AuthorizeUser(this IHockeyClient @this,
    Type pageTypeForSuccessRedirect, string eMail = null,
    TokenValidationPolicy tokenValidationPolicy = TokenValidationPolicy.EveryLogin,
    AuthValidationMode authValidationMode = AuthValidationMode.Graceful)
 {
     @this.AsInternal().CheckForInitialization();
     var authMan = AuthManager.Current;
     authMan.SuccessRedirectPageType = pageTypeForSuccessRedirect;
     AuthManager.Current.AuthenticateUser(AuthenticationMode.Authorize,
         tokenValidationPolicy, authValidationMode, eMail, null);
 }
        /// <summary>
        /// Identify user with hockeaypp auth. Opening a login page to require valid email address for app if needed
        /// </summary>
        /// <param name="this"></param>
        /// <param name="appSecret">Your app's app secret (see HockeyApp app page)</param>
        /// <param name="successRedirect">Page-URI to redirect to after successful login</param>
        /// <param name="navigationService">[optional] obsolete - not needed</param>
        /// <param name="eMail">[Optional] initial email</param>
        /// <param name="tokenValidationPolicy"><see cref="TokenValidationPolicy"/></param>
        /// <param name="authValidationMode"><see cref="AuthValidationMode"/></param>
        public static void IdentifyUser(this IHockeyClient @this, string appSecret,
            Uri successRedirect, NavigationService navigationService = null,
            string eMail = null,
            TokenValidationPolicy tokenValidationPolicy = TokenValidationPolicy.EveryLogin,
            AuthValidationMode authValidationMode = AuthValidationMode.Graceful)

        {
            @this.AsInternal().CheckForInitialization();
            AuthManager.Instance.AuthenticateUser(successRedirect, AuthenticationMode.Identify, 
                tokenValidationPolicy, authValidationMode, eMail, appSecret);
        }
Example #13
0
        internal void AuthenticateUser(Uri successRedirect, AuthenticationMode authMode = AuthenticationMode.Authorize,
            TokenValidationPolicy tokenValidationPolicy = TokenValidationPolicy.EveryLogin, AuthValidationMode authValidationMode = AuthValidationMode.Graceful,
            string email = null, string appSecret = null)
        {
            if (AuthenticationMode.Identify.Equals(authMode) && String.IsNullOrEmpty(appSecret))
            {
                throw new ApplicationException(LocalizedStrings.LocalizedResources.Authentication_AppSecretMissing);
            }
            this.SuccessRedirect = successRedirect;

            bool needsLogin = TokenValidationPolicy.EveryLogin.Equals(tokenValidationPolicy);

            if (!needsLogin && TokenValidationPolicy.OnNewVersion.Equals(tokenValidationPolicy))
            {
                string lastAuthorizedVersion = IsolatedStorageSettings.ApplicationSettings.GetValue(Constants.AuthLastAuthorizedVersionKey) as String;
                needsLogin = (lastAuthorizedVersion == null) || (new Version(lastAuthorizedVersion) < new Version(ManifestHelper.GetAppVersion()));
            }

            if (needsLogin)
            {
                ((PhoneApplicationFrame)Application.Current.RootVisual).Navigate(new Uri("/HockeyApp;component/Views/LoginPage.xaml?authmode=" + HttpUtility.UrlEncode(authMode.ToString())
                                                                + "&appsecret=" + HttpUtility.UrlEncode(appSecret)
                                                                + "&email=" + HttpUtility.UrlEncode(email ?? "")
                                                                + "&validationmode=" + HttpUtility.UrlEncode(authValidationMode.ToString() ?? ""), UriKind.Relative));
            }
            else
            {
                ((PhoneApplicationFrame)Application.Current.RootVisual).Navigate(successRedirect);
            }
        }
Example #14
0
 protected TokenValidationResult JwtCore(byte[] token, TokenValidationPolicy policy)
 {
     return(Reader.TryReadToken(token, policy));
 }
        internal void AuthenticateUser(AuthenticationMode authMode = AuthenticationMode.Authorize,
            TokenValidationPolicy tokenValidationPolicy = TokenValidationPolicy.EveryLogin, AuthValidationMode authValidationMode = AuthValidationMode.Graceful,
            string email = null, string appSecret = null)
        {
            if (AuthenticationMode.Identify.Equals(authMode) && String.IsNullOrEmpty(appSecret))
            {
                throw new Exception("Internal error: AppSecret must be provided when Identify function is used"); //ResourceManager.Current.MainResourceMap
            }
            bool needsLogin = TokenValidationPolicy.EveryLogin.Equals(tokenValidationPolicy);

            if(!needsLogin && TokenValidationPolicy.OnNewVersion.Equals(tokenValidationPolicy)) {
                string lastAuthorizedVersion = HockeyClient.Current.AsInternal().PlatformHelper.GetSettingValue(ConstantsUniversal.AuthLastAuthorizedVersionKey);
                needsLogin = (lastAuthorizedVersion == null) || (new Version(lastAuthorizedVersion) < new Version(HockeyClient.Current.AsInternal().VersionInfo));
            }

            if (needsLogin)
            {
                this.ShowLoginScreen(authMode, appSecret, email, authValidationMode);
            }
            else
            {
                this.ExecuteSuccessRedirectOrAction();
            }
        }
Example #16
0
 public Jwt?TryParseJwe(byte[] data, TokenValidationPolicy policy)
 {
     return(TryParse(data, policy));
 }