protected void OKButton_Click(object sender, EventArgs e) { SubscriberTableAdapter sta = new SubscriberTableAdapter(); DataSet.SubscriberDataTable dt = sta.GetDataByAuthKey(AuthenticationKeyTextBox.Text); if (dt.Count == 0) { InvalidKeyLabel.Text = "���͂��ꂽ�F�L�[�͖����ł��B"; return; } DataSet.SubscriberRow subscriber = dt[0]; TokenPublisher p = new TokenPublisher(subscriber, DateTime.Now); DataSet.TokenRow token; try { token = p.Publish(); } catch (DoubtfulAuthBehaviorException ex) { p.LockOut(); logger.Info(ex.Message); WebUtil.RedirectToLockout(Context, subscriber.LockoutUntil); return; } WebUtil.AddAuthCookie(Response, token.Body); if (Request.QueryString["from"] != null && Request.QueryString["from"].Length > 0) { Response.Redirect(HttpUtility.UrlDecode(Request.QueryString["from"])); } }
public void Test_Properties() { using (TransactionScope scope = new TransactionScope()) { TitleTableAdapter tta = new TitleTableAdapter(); tta.Insert("test title", "test push message", basePath + @"\copyDirectory_dist", basePath + @"\copyDirectory_orig"); DataSet.TitleRow title = tta.GetDataByName("test title")[0]; SubscriberTableAdapter sta = new SubscriberTableAdapter(); sta.Insert(title.Id, "test authkey", "web", Constant.Ago); sta.Insert(title.Id, "test authkey 2", "web", new DateTime(2011, 10, 13)); DataSet.SubscriberDataTable sdt = sta.GetDataByTitleId(title.Id); DataSet.SubscriberRow s1, s2; if (sdt[0].AuthenticationKey == "test authkey") { s1 = sdt[0]; s2 = sdt[1]; } else { s2 = sdt[0]; s1 = sdt[1]; } TokenTableAdapter kta = new TokenTableAdapter(); kta.Insert(s1.Id, new DateTime(2011, 10, 12, 0, 0, 0), "deadbeef"); kta.Insert(s2.Id, new DateTime(2011, 10, 12, 4, 59, 50), "deadbeef2"); DataSet.TokenRow k1, k2; k1 = kta.GetDataByBody("deadbeef")[0]; k2 = kta.GetDataByBody("deadbeef2")[0]; Expect(SiteConstant.IsConfigurationOK, Is.EqualTo(true)); DateTime now = new DateTime(2011, 10, 12, 5, 0, 0); TokenPublisher p1 = new TokenPublisher(s1, now); DataSet.TokenRow pk1 = p1.Publish(); Expect(pk1.Id, Is.Not.EqualTo(k1.Id)); TokenPublisher p2 = new TokenPublisher(s2, now); DataSet.TokenRow pk2 = p2.Publish(); Expect(pk2.Id, Is.EqualTo(k2.Id)); kta.Insert(s2.Id, new DateTime(2011, 10, 12, 4, 59, 10), "deadbeef3"); kta.Insert(s2.Id, new DateTime(2011, 10, 12, 4, 59, 20), "deadbeef4"); TokenPublisher p2_2 = new TokenPublisher(s2, now); try { p2_2.Publish(); Expect(false); } catch (DoubtfulAuthBehaviorException) { // OK } Expect(kta.GetDataBySubscriberId(s2.Id).Count, Is.EqualTo(3)); } }
public override void AuthenticateRequest(HttpContext context) { if (context.Request.Cookies[SiteConstant.AuthTokenCookieName] == null) { WebUtil.RedirectToAskAuthPage(context); return; } string tokenBody = context.Request.Cookies[SiteConstant.AuthTokenCookieName].Value; TokenVerifier v = new TokenVerifier(tokenBody, now); if (!v.IsValid) { logger.Info("token invalid. RequestInfo: " + WebUtil.RequestInfo(context)); WebUtil.RedirectToAskAuthPage(context); return; } if (v.IsLockedOut) { logger.Info("token is locked out. RequestInfo: " + WebUtil.RequestInfo(context)); WebUtil.RedirectToLockout(context, v.Subscriber.LockoutUntil); return; } if (v.IsOutdated) { logger.Info("token is Outdated. RequestInfo: " + WebUtil.RequestInfo(context)); TokenPublisher p = new TokenPublisher(v.Subscriber, now); DataSet.TokenRow t; try { t = p.Publish(); } catch (DoubtfulAuthBehaviorException e) { p.LockOut(); logger.Info(e.Message); WebUtil.RedirectToLockout(context, v.Subscriber.LockoutUntil); return; } catch (Exception ex) { logger.Error("�F�g�[�N���̔��s�Ɏ��s���܂���", ex); context.Response.StatusCode = (int) HttpStatusCode.InternalServerError; context.Response.End(); return; } HttpCookie cookie = new HttpCookie(SiteConstant.AuthTokenCookieName, t.Body); cookie.Expires = DateTime.MaxValue; context.Response.Cookies.Add(cookie); } context.User = new GenericPrincipal(new GenericIdentity("user"), null); }