Пример #1
0
        private void TokenReceived()
        {
            using (var trs = new TransactionScope())
            {
                DateTime now = DateTime.Now; // Time of request

                ADOLinkRequest alr = new ADOLinkRequest();

                LinkRequest lr = alr.Insert(
                    new LinkRequest()
                {
                    RequestedOn = DateTime.Now,
                    Token       = TextBox3.Text
                });

                // Get a link for the token.
                ADOToken at    = new ADOToken();
                IToken   token = at.FindUnexpired(lr.Token);

                if (token == null)
                {
                    Response.Redirect("TokenNotFound.aspx");
                    return;
                }

                ADOTokenType att = new ADOTokenType();
                TokenType    tt  = att.ById(token.TokenTypeId);

                //Now get Token request for this token.
                ADOTokenRequest atr = new ADOTokenRequest();
                TokenRequest    tr  = atr.FindFor(token);

                bool expiredNow = token.SingleUse || tr.RequestedOn.AddSeconds(token.ValidForSeconds) <= now;
                if (expiredNow)
                {
                    token = at.Expire(token);
                }

                if (token.IsExpired)
                {
                    //Get token service
                    TokenService ts = new TokenServices().GetTokenService(tt);
                    //Make token available again
                    ts.ReturnToken(token);
                }

                trs.Complete();
                Response.Redirect(
                    String.Format("Transfer.aspx?url2={0}", Server.UrlEncode(tr.LinkHref)));

                return;
            }
        }