示例#1
0
 public override XmlReader Load(int moduleId, int portalId, Hashtable settings)
 {
     var xmlsrc = settings[Setting.SourceUrl].DefaultIfNullOrEmpty();
     XmlReader responseReader = null;
     if (!string.IsNullOrEmpty(xmlsrc))
     {
         try
         {
             switch (Globals.GetURLType(xmlsrc))
             {
                 case TabType.Url:
                     {
                         var paramList = new ParameterController(_providerName).GetParameters(moduleId);
                         paramList.Encoding = GetQueryStringEncoding(settings[Setting.UrlEncoding].DefaultIfNullOrEmpty());
                         xmlsrc = new TokenReplace().ReplaceEnvironmentTokens(xmlsrc);
                         if (paramList.IsValid())
                         {
                             xmlsrc += (xmlsrc.IndexOf("?") == -1 ? "?" : "&") + paramList;
                             var useCache = bool.Parse(settings[Setting.EnableCache].DefaultIfNullOrEmpty(bool.FalseString));
                             var credential = new Credential(settings[Setting.SourceAccount].DefaultIfNullOrEmpty(), settings[Setting.SourcePassWord].DefaultIfNullOrEmpty());
                             responseReader = GetXmlContent(xmlsrc,credential , useCache);
                         }
                         else
                         {
                             responseReader = NoDataReader("Parameter");
                         }
                     }
                     break;
                 default:
                     responseReader = NoDataReader("Unsupported Url");
                     break;
             }
         }
         catch (SecurityException)
         {
             throw;
         }
         catch (Exception ex)
         {
             Exceptions.LogException(ex);
             responseReader = NoDataReader("Exception");
         }
     }
     return responseReader;
 }
示例#2
0
 private static WebResponse GetDocumentResponse(string url, Credential credential)
 {
     var req =credential==null ? Globals.GetExternalRequest(url) : Globals.GetExternalRequest(url,credential.NetworkCredential );
     return req.GetResponse();
 }
示例#3
0
 private static string GetCacheKey(string contentUrl,Credential credential)
 {
     return string.Format("{0}_{1}", contentUrl, Utils.GetSha256HashCode( credential  ));
 }
示例#4
0
 /// <summary>
 ///   GetXMLContent loads the xml content from a web resource into an XmlReader.
 /// </summary>
 /// <param name = "contentUrl"></param>
 /// <param name = "credential"></param>
 /// <param name="useCache"></param>
 /// <returns>A Xml Reader</returns>
 private static XmlReader GetXmlContent(string contentUrl, Credential credential , bool useCache)
 {
     var cacheKey = GetCacheKey(contentUrl, credential);
     var args = new CacheItemArgs(cacheKey, 0,CacheItemPriority.Normal, contentUrl, credential );
     var doc = useCache ? CBO.GetCachedObject<XmlDocument>(args, GetDocument) : GetDocument(args);
     return new XmlNodeReader(doc);
 }
示例#5
0
 public static string GetSha256HashCode(Credential credential)
 {
     var input = credential.UserName+ credential.Password;
     return GetSha256HashCode( ref input);
 }
示例#6
0
        public static string GetSha256HashCode(Credential credential)
        {
            var input = credential.UserName + credential.Password;

            return(GetSha256HashCode(ref input));
        }