Example #1
0
        /// <summary>
        /// 指定のブラウザのクッキーを使って、ログインします。
        /// </summary>
        public static CookieContainer LoginWithBrowser(BrowserType browser,
                                                       bool validate)
        {
#if !RGN_NOT_USE_COOKIEGETTERSHARP
            try
            {
                var enumType    = typeof(Ragnarok.Net.CookieGetter.BrowserType);
                var browserType = (Ragnarok.Net.CookieGetter.BrowserType)browser;
                if (!Enum.IsDefined(enumType, browserType))
                {
                    throw new ArgumentException(
                              "ブラウザの種類が正しくありません。", "browser");
                }

                var cookieGetter = CookieGetter.CreateInstance(browserType);
                if (cookieGetter == null)
                {
                    Log.Error(
                        "クッキーの取得オブジェクトの作成に失敗しました。");
                    return(null);
                }

                // 与えられたブラウザのログインクッキーを取得します。
                var cookie = cookieGetter.GetCookie(
                    new Uri(NicoString.GetLiveTopUrl()),
                    "user_session");
                if (cookie == null)
                {
                    return(null);
                }

                var cc = new CookieContainer();
                cc.Add(cookie);

                // 本当にこのクッキーでログインできるか確認します。
                if (validate)
                {
                    var account = CookieValidator.Validate(cc);
                    if (account == null)
                    {
                        return(null);
                    }
                }

                return(cc);
            }
            catch (Exception)
            {
                /*Log.ErrorMessage(ex,
                 *  "クッキーの取得に失敗しました。");*/
            }
#endif
            return(null);
        }