Ejemplo n.º 1
0
        private OAuth2Provider GetProvider(string type, bool referer = false)
        {
            type = type.ToLower();
            Uri    uri      = Request.Url;
            string redirect = string.Concat(uri.Scheme, "://", uri.DnsSafeHost, uri.Port != 80 ? string.Concat(":", uri.Port.ToString()) : string.Empty, GetUrl(string.Concat("/oauth2/cb/", type)));

            if (referer)
            {
                string target = Request.QueryString["target"];
                if (string.IsNullOrEmpty(target))
                {
                    if (Request.UrlReferrer != null)
                    {
                        target = Request.UrlReferrer.ToString();
                    }
                }
                if (!string.IsNullOrEmpty(target))
                {
                    redirect = string.Concat(redirect, "?target=", HttpUtility.UrlEncode(target));
                }
            }
            M.OAuth2 provider = M.OAuth2.GetById(DataSource, type);
            if (provider != null)
            {
                OAuth2ProviderOptions options = new OAuth2ProviderOptions()
                {
                    ClientId     = provider.Key,
                    ClientSecret = provider.Secret,
                    RedirectUri  = redirect
                };
                return(OAuth2Provider.Create(options, type));
            }
            return(null);
        }
Ejemplo n.º 2
0
 public SohuProvider(OAuth2ProviderOptions options)
     : base(options)
 {
     if (options.Scope.Count == 0)
     {
         options.Scope.Add("basic");
     }
     _scope = options.Scope;
 }
Ejemplo n.º 3
0
 public DoubanProvider(OAuth2ProviderOptions options)
     : base(options)
 {
 }
Ejemplo n.º 4
0
 public TianyiProvider(OAuth2ProviderOptions options)
     : base(options)
 {
 }
Ejemplo n.º 5
0
 public Weibo(OAuth2ProviderOptions options)
     : base(options)
 {
 }
Ejemplo n.º 6
0
 public DuoshuoProvider(OAuth2ProviderOptions options)
     : base(options)
 {
 }
Ejemplo n.º 7
0
 public RenrenProvider(OAuth2ProviderOptions options)
     : base(options)
 {
 }
Ejemplo n.º 8
0
 public _163Provider(OAuth2ProviderOptions options)
     : base(options)
 {
 }
Ejemplo n.º 9
0
 public Taobao(OAuth2ProviderOptions options)
     : base(options)
 {
 }
Ejemplo n.º 10
0
 public Weixinqr(OAuth2ProviderOptions options)
     : base(options)
 {
     base.Scope.Add("snsapi_login");
 }
Ejemplo n.º 11
0
 public QQ(OAuth2ProviderOptions options)
     : base(options)
 {
 }
Ejemplo n.º 12
0
 public Baidu(OAuth2ProviderOptions options)
     : base(options)
 {
 }
Ejemplo n.º 13
0
 public Weixin(OAuth2ProviderOptions options)
     : base(options)
 {
     base.Scope.Add("snsapi_userinfo");
 }
Ejemplo n.º 14
0
 public FeixinProvider(OAuth2ProviderOptions options)
     : base(options)
 {
 }
Ejemplo n.º 15
0
 public TWeiboProvider(OAuth2ProviderOptions options)
     : base(options)
 {
 }