本文整理匯總了C#中SobekCM.Library.Navigation.SobekCM_Navigation_Object.Set_Robot_Flag方法的典型用法代碼示例。如果您正苦於以下問題:C# SobekCM_Navigation_Object.Set_Robot_Flag方法的具體用法?C# SobekCM_Navigation_Object.Set_Robot_Flag怎麽用?C# SobekCM_Navigation_Object.Set_Robot_Flag使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類SobekCM.Library.Navigation.SobekCM_Navigation_Object
的用法示例。
在下文中一共展示了SobekCM_Navigation_Object.Set_Robot_Flag方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: SobekCM_Page_Globals
public SobekCM_Page_Globals(bool isPostBack, string page_name)
{
// Pull out the http request
HttpRequest request = HttpContext.Current.Request;
// Get the base url
string base_url = request.Url.AbsoluteUri.ToLower().Replace("sobekcm.aspx", "");
if (base_url.IndexOf("?") > 0)
base_url = base_url.Substring(0, base_url.IndexOf("?"));
try
{
tracer = new Custom_Tracer();
tracer.Add_Trace("SobekCM_Page_Globals.Constructor", String.Empty);
// Don't really need to *build* these, so just define them as a new ones if null
if (Global.Checked_List == null)
Global.Checked_List = new Checked_Out_Items_List();
if (Global.Search_History == null)
Global.Search_History = new Recent_Searches();
// Make sure all the needed data is loaded into the Application State
Application_State_Builder.Build_Application_State(tracer, false, ref Global.Skins, ref Global.Translation,
ref Global.Codes, ref Global.Item_List, ref Global.Icon_List,
ref Global.Stats_Date_Range, ref Global.Thematic_Headings, ref Global.Collection_Aliases, ref Global.IP_Restrictions,
ref Global.URL_Portals, ref Global.Mime_Types, ref Global.Item_Viewer_Priority);
tracer.Add_Trace("SobekCM_Page_Globals.Constructor", "Application State validated or built");
// Check that something is saved for the original requested URL (may not exist if not forwarded)
if (!HttpContext.Current.Items.Contains("Original_URL"))
HttpContext.Current.Items["Original_URL"] = request.Url.ToString();
}
catch (Exception ee)
{
// Send to the dashboard
if ((HttpContext.Current.Request.UserHostAddress == "127.0.0.1") || (HttpContext.Current.Request.UserHostAddress == HttpContext.Current.Request.ServerVariables["LOCAL_ADDR"]) || (HttpContext.Current.Request.Url.ToString().IndexOf("localhost") >= 0))
{
// Create an error message
string errorMessage = "Error caught while validating application state";
if ((SobekCM_Library_Settings.Database_Connections.Count == 0) || (String.IsNullOrEmpty(SobekCM_Library_Settings.Database_Connections[0].Connection_String)))
{
errorMessage = "No database connection string found!";
string configFileLocation = AppDomain.CurrentDomain.BaseDirectory + "config/sobekcm.xml";
try
{
if (!File.Exists(configFileLocation))
{
errorMessage = "Missing config/sobekcm.xml configuration file on the web server.<br />Ensure the configuration file 'sobekcm.xml' exists in a 'config' subfolder directly under the web application.<br />Example configuration is:" +
"<div style=\"background-color: #bbbbbb; margin-left: 30px; margin-top:10px; padding: 3px;\"><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><br /> <configuration><br />   <connection_string type="MSSQL">data source=localhost\\instance;initial catalog=SobekCM;integrated security=Yes;</connection_string><br />   <error_emails>[email protected]</error_emails><br />   <error_page>http://ufdc.ufl.edu/error.html</error_page><br /></configuration></div>";
}
}
catch
{
errorMessage = "No database connection string found.<br />Likely an error reading the configuration file due to permissions on the web server.<br />Ensure the configuration file 'sobekcm.xml' exists in a 'config' subfolder directly under the web application.<br />Example configuration is:" +
"<div style=\"background-color: #bbbbbb; margin-left: 30px; margin-top:10px; padding: 3px;\"><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><br /> <configuration><br />   <connection_string type="MSSQL">data source=localhost\\instance;initial catalog=SobekCM;integrated security=Yes;</connection_string><br />   <error_emails>[email protected]</error_emails><br />   <error_page>http://ufdc.ufl.edu/error.html</error_page><br /></configuration></div>";
}
}
else
{
if (ee.Message.IndexOf("The EXECUTE permission") >= 0)
{
errorMessage = "Permissions error while connecting to the database and pulling necessary data.<br /><br />Confirm the following:<ul><li>IIS is configured correctly to use anonymous authentication</li><li>Anonymous user (or service account) is part of the sobek_users role in the database.</li></ul>";
}
else
{
errorMessage = "Error connecting to the database and pulling necessary data.<br /><br />Confirm the following:<ul><li>Database connection string is correct ( " + SobekCM_Library_Settings.Database_Connections[0].Connection_String + ")</li><li>IIS is configured correctly to use anonymous authentication</li><li>Anonymous user (or service account) is part of the sobek_users role in the database.</li></ul>";
}
}
// Wrap this into the SobekCM Exception
SobekCM_Traced_Exception newException = new SobekCM_Traced_Exception(errorMessage, ee, tracer);
// Save this to the session state, and then forward to the dashboard
HttpContext.Current.Session["Last_Exception"] = newException;
HttpContext.Current.Response.Redirect("dashboard.aspx", false);
HttpContext.Current.ApplicationInstance.CompleteRequest();
return;
}
else
{
throw ee;
}
}
// Analyze the response and get the mode
try
{
currentMode = new SobekCM_Navigation_Object(request.QueryString, base_url, request.UserLanguages, Global.Codes, Global.Collection_Aliases, ref Global.Item_List, Global.URL_Portals, tracer)
{
Base_URL = base_url,
isPostBack = isPostBack,
Browser_Type = request.Browser.Type.ToUpper()
};
currentMode.Set_Robot_Flag(request.UserAgent, request.UserHostAddress);
}
catch
{
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.AddHeader("Location", base_url);
HttpContext.Current.ApplicationInstance.CompleteRequest();
//.........這裏部分代碼省略.........
示例2: Read_Log
/// <summary> Read a IIS web log, analyze completely, and return the corresponding <see cref="SobekCM_Stats_DataSet"/> object </summary>
/// <param name="Log_File"> Location for the log file to read </param>
/// <returns> Object with all the analyzed hits and sessions from the web log </returns>
public SobekCM_Stats_DataSet Read_Log(string Log_File)
{
// Get list of ips which include dloc.com
dloc_ips = new List<string>();
// Create the list of hits
hits = new SortedList<SobekCM_Hit, SobekCM_Hit>();
// Create the list of sessions
sessions = new Dictionary<string, SobekCM_Session>();
// Create the return set
SobekCM_Stats_DataSet returnValue = new SobekCM_Stats_DataSet();
// Get the date of the log file
FileInfo fileInfo = new FileInfo(Log_File);
string name = fileInfo.Name.Replace(fileInfo.Extension, "");
DateTime logDate = new DateTime(Convert.ToInt32("20" + name.Substring(4, 2)),
Convert.ToInt32(name.Substring(6, 2)), Convert.ToInt32(name.Substring(8, 2)));
returnValue.Date = logDate;
// Open a connection to the log file and save each hit
StreamReader reader = new StreamReader(Log_File);
string line = reader.ReadLine();
while (line != null)
{
parse_line(line);
line = reader.ReadLine();
}
// Now, step through each hit in the list
foreach (SobekCM_Hit hit in hits.Values)
{
if (hit.UFDC_URL.ToUpper().IndexOf(".ASPX") < 0)
{
// Always increment the hits
returnValue.Increment_Hits();
// Add this IP hit
returnValue.Add_IP_Hit(hit.IP, hit.UserAgent);
// Shouldn't start with '/'
if (hit.UFDC_URL[0] == '/')
{
hit.UFDC_URL = hit.UFDC_URL.Substring(1);
}
hit.UFDC_URL = hit.UFDC_URL.ToLower();
if (hit.UFDC_URL.IndexOf("design/webcontent/") == 0)
hit.UFDC_URL = hit.UFDC_URL.Substring(18);
// Add this as a webcontent hit
returnValue.Add_WebContent_Hit(hit.UFDC_URL);
}
else
{
// parse the url
string[] splitter = hit.Query_String.ToLower().Split("&".ToCharArray());
NameValueCollection queryStringCollection = new NameValueCollection();
foreach (string thisSplit in splitter)
{
int equals_index = thisSplit.IndexOf("=");
if ((equals_index > 0) && (equals_index < thisSplit.Length - 1))
{
string query_name = thisSplit.Substring(0, equals_index);
string query_value = thisSplit.Substring(equals_index + 1);
queryStringCollection[query_name] = query_value;
if (query_name.ToLower() == "portal")
hit.UFDC_URL = query_value;
}
}
// Now, get the navigation object using the standard SobekCM method
try
{
SobekCM_Navigation_Object currentMode = new SobekCM_Navigation_Object(queryStringCollection, hit.UFDC_URL,
new string[] {"en"}, Codes, Collection_Aliases,
ref Item_Lookup_Object, URL_Portals, null);
if (currentMode != null)
currentMode.Set_Robot_Flag(hit.UserAgent, hit.IP);
if ((currentMode != null) && (!currentMode.Is_Robot))
{
// Always increment the hits
returnValue.Increment_Hits();
// Add this IP hit
returnValue.Add_IP_Hit(hit.IP, hit.UserAgent);
// Increment the portal hits
returnValue.Add_Portal_Hit(currentMode.SobekCM_Instance_Name.ToUpper());
// Check for pre-existing session
SobekCM_Session thisSession;
if (sessions.ContainsKey(hit.IP))
{
SobekCM_Session possibleSession = sessions[hit.IP];
//.........這裏部分代碼省略.........