コード例 #1
0
        public void Clear()
        {
            if (UserId.HasValue)
            {
                ClearUser(UserId.Value);
            }

            var path = _context.GetSiteRoot();

            foreach (var name in new[] { UserIdCookieName, EncryptionKeyCookieName })
            {
                // fix for the old behaviour when cookies were set for Path=/
                if (path != "")
                {
                    _context.ClearCookie(name, "/");
                }
                _context.ClearCookie(name, path);
            }
        }
コード例 #2
0
        public static bool TryGetCurrentWebUser
        (
            this HttpContextBase context
            , out ClaimsPrincipal claimsPrincipal
            , bool needValidateIP  = true
            , int expiredInSeconds = -1
            , string cookieName    = "WebUserToken"
        )
        {
            var r = false;

            claimsPrincipal = null;
            var cookie = context.Request.Cookies[cookieName];

            if (cookie != null)
            {
                string ip = null;
                if (needValidateIP)
                {
                    ip = context.Request.UserHostAddress;
                }
                r = TryGetCurrentWebUser
                    (
                    cookie.Value
                    , out claimsPrincipal
                    , ip
                    , expiredInSeconds
                    );
                if (!r)
                {
                    context.ClearCookie(cookieName);
                    claimsPrincipal = null;
                }
            }
            return(r);
        }