/// <summary>尝试登录。如果Session未登录则借助Cookie</summary>
        /// <param name="provider">提供者</param>
        /// <param name="context">Http上下文,兼容NetCore</param>
        public static IManageUser TryLogin(this IManageProvider provider, HttpContext context)
        {
            var serviceProvider = context?.RequestServices;

            // 判断当前登录用户
            var user = provider.GetCurrent(serviceProvider);

            if (user == null)
            {
                // 尝试从Cookie登录
                user = provider.LoadCookie(true, context);
                if (user != null)
                {
                    provider.SetCurrent(user, serviceProvider);
                }
            }

            // 设置前端当前用户
            if (user != null)
            {
                provider.SetPrincipal(serviceProvider);
            }

            return(user);
        }
Beispiel #2
0
        /// <summary>尝试登录。如果Session未登录则借助Cookie</summary>
        /// <param name="provider">提供者</param>
        /// <param name="context">Http上下文,兼容NetCore</param>
        public static IManageUser TryLogin(this IManageProvider provider, IServiceProvider context = null)
        {
            // 判断当前登录用户
            var user = provider.GetCurrent(context);

            if (user == null)
            {
                // 尝试从Cookie登录
                user = provider.LoadCookie(true, context);
                if (user != null)
                {
                    provider.SetCurrent(user, context);
                }
            }

            // 设置前端当前用户
            if (user != null)
            {
                provider.SetPrincipal(context);
            }

            return(user);
        }