/// <summary>
 /// 获得Route对应Value
 /// </summary>
 /// <param name="key"></param>
 /// <returns></returns>
 protected string GetRouteValue(string key, AuthorizationContext context)
 {
     if (context.IsNotNull() && context.RouteData.DataTokens != null)
     {
         return context.RouteData.DataTokens[key].ToString();
     }
     return string.Empty;
 }
 /// <summary>
 /// 获得请求的路径
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 protected string GetPath(AuthorizationContext context)
 {
     if (context.IsNotNull() && GetHttpRequest(context).IsNotNull())
     {
         return GetHttpRequest(context).Url.ToString();
     }
     return string.Empty;
 }
 /// <summary>
 /// 获得请求Route
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 protected string GetRequestPath(AuthorizationContext context)
 {
     if (context.IsNotNull())
     {
         string area = string.Empty;
         string controllerName = string.Empty;
         string action = string.Empty;
         if (context.RouteData.Values.Count > 0)
         {
             area = context.RouteData.DataTokens["area"] != null ? context.RouteData.DataTokens["area"].ToString() : string.Empty;
             controllerName = context.RouteData.GetRequiredString("controller");
             action = context.RouteData.Values["action"].ToString();
         }
         else
         {
             controllerName = "Home";
             action = "Login";
         }
         area = "root" == area.ToLower() || area.IsEmpty() ? string.Empty : "/" + area;
         return area + "/" + controllerName + "/" + action;
     }
     return string.Empty;
 }