diff --git a/src/umbraco.businesslogic/BasePages/BasePage.cs b/src/umbraco.businesslogic/BasePages/BasePage.cs index ad849847dd..3f09e70cb3 100644 --- a/src/umbraco.businesslogic/BasePages/BasePage.cs +++ b/src/umbraco.businesslogic/BasePages/BasePage.cs @@ -131,23 +131,34 @@ namespace umbraco.BasePages /// public static int GetUserId(string umbracoUserContextID) { + + Guid contextId; + if (!Guid.TryParse(umbracoUserContextID, out contextId)) + { + return -1; + } + try { - if (System.Web.HttpRuntime.Cache["UmbracoUserContext" + umbracoUserContextID] == null) + if (HttpRuntime.Cache["UmbracoUserContext" + umbracoUserContextID] == null) { - System.Web.HttpRuntime.Cache.Insert( + var uId = SqlHelper.ExecuteScalar( + "select userID from umbracoUserLogins where contextID = @contextId", + SqlHelper.CreateParameter("@contextId", new Guid(umbracoUserContextID))); + if (!uId.HasValue) + { + return -1; + } + + HttpRuntime.Cache.Insert( "UmbracoUserContext" + umbracoUserContextID, - SqlHelper.ExecuteScalar("select userID from umbracoUserLogins where contextID = @contextId", - SqlHelper.CreateParameter("@contextId", new Guid(umbracoUserContextID)) - ), + uId.Value, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, (int) (UmbracoTimeOutInMinutes/10), 0)); - - } - return (int)System.Web.HttpRuntime.Cache["UmbracoUserContext" + umbracoUserContextID]; + return (int)HttpRuntime.Cache["UmbracoUserContext" + umbracoUserContextID]; } catch