Exemple #1
0
        public string GetOAuthProviderProperty(OAuthProviderEnum pro, OAuthPropertyEnum prop)
        {
            OAuthProvider provider = GetOAuthProvider(pro);

            PropertyInfo pi = provider.GetType().GetProperty(prop.ToString());

            return (string)pi.GetValue(provider, null);
        }
Exemple #2
0
        public void EnableOauthProvider(OAuthProviderEnum pro, params string[] args)
        {
            OAuthProvider provider = GetOAuthProvider(pro);

            provider.SetKeys(args);

            InitializeGLFDb("GenericLoginFramework", false);
        }
        public IOAuthContext GetContext(OAuthProviderEnum oauthProviderEnum)
        {
            switch (oauthProviderEnum)
            {
            case OAuthProviderEnum.Twitter:
                return(Container.Resolve <TwitterOAuthContext>());

            case OAuthProviderEnum.Facebook:
                return(Container.Resolve <FacebookOAuthContext>());

            default:
                throw new NotImplementedException();
            }
        }
Exemple #4
0
        public async Task<User> GetUserFromOAuthToken(OAuthProviderEnum pro, string token)
        {
            OAuthProvider provider = GetOAuthProvider(pro);
            OAuthResource resource = await provider.GetResourceFromToken(token);

            User user = null;

            using(GLFDbContext db = new GLFDbContext(DbName, IsConnString))
            {

                if (pro == OAuthProviderEnum.FacebookProvider)
                {
                    user = db.Users.Where(u => u.FacebookResource.ID == resource.ID)
                                   .Include(u => u.FacebookResource)
                                   .Include(u => u.GoogleResource)
                                   .FirstOrDefault();
                }


                if (user != null)
                {
                    if(pro == OAuthProviderEnum.FacebookProvider)
                    {
                        db.Entry(user.FacebookResource).CurrentValues.SetValues(resource);
                    }
                }
                else
                {
                    Type type = typeof(User);
                    PropertyInfo property = type.GetProperty(resource.GetType().Name, BindingFlags.Public | BindingFlags.Instance);
                    user = new User ();
                    property.SetValue(user, resource, null);
                    db.Users.Add(user);
                }
                db.SaveChanges();
            }

            return user;
        }
Exemple #5
0
 private void ShowOAuthWindow(OAuthProviderEnum provider)
 {
     new OAuthWindow(oauthContextProvider.GetContext(provider), OnOAuthSuccess).Show();
 }
Exemple #6
0
        private OAuthProvider GetOAuthProvider(OAuthProviderEnum pro)
        {
            Type providerType = Type.GetType(String.Format("GenericLoginFramework.OAuth.Providers.{0}", pro.ToString()));

            OAuthProvider provider = (OAuthProvider)providerType.GetProperty("Instance").GetValue(null, null);

            return provider;
        }