public string GetOAuthProviderProperty(OAuthProviderEnum pro, OAuthPropertyEnum prop) { OAuthProvider provider = GetOAuthProvider(pro); PropertyInfo pi = provider.GetType().GetProperty(prop.ToString()); return (string)pi.GetValue(provider, null); }
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(); } }
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; }
private void ShowOAuthWindow(OAuthProviderEnum provider) { new OAuthWindow(oauthContextProvider.GetContext(provider), OnOAuthSuccess).Show(); }
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; }