예제 #1
0
        /// <summary>
        /// 从Url中的参数中,检查访问票据
        /// </summary>
        /// <param name="matchedUrl">需要匹配的url,如果为null,表示不需要检查</param>
        /// <param name="urlCheckParts">Url中需要检查的部分</param>
        /// <param name="timeout">有效期</param>
        public static AccessTicket CheckAccessTicket(Uri matchedUrl, AccessTicketUrlCheckParts urlCheckParts, TimeSpan timeout)
        {
            AccessTicket ticket = GetAccessTicket();

            (ticket == null).TrueThrow <AccessTicketCheckException>(Translator.Translate(Define.DefaultCategory, "您没有权限访问此页面"));

            (ticket.TimeStampIsValid(timeout)).FalseThrow <AccessTicketCheckException>
                (Translator.Translate(Define.DefaultCategory, "访问票据已经过期,您没有权限访问此页面"));

            if (matchedUrl != null)
            {
                ticket.UrlIsValid(matchedUrl, urlCheckParts).FalseThrow <AccessTicketCheckException>
                    (Translator.Translate(Define.DefaultCategory, "票据中的地址不匹配,您没有权限访问此页面"));
            }

            return(ticket);
        }