src/mvc/client/Bootstrap.Client/Models/HeaderBarModel.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Bootstrap.Client.DataAccess;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;

namespace Bootstrap.Client.Models
{
    /// <summary>
    /// 
    /// </summary>
    public class HeaderBarModel : ModelBase
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="controller"></param>
        public HeaderBarModel(ControllerBase controller)
        {
            var user = UserHelper.RetrieveUserByUserName(controller.User.Identity!.Name);
            if (user != null)
            {
                DisplayName = user.DisplayName;
                UserName = user.UserName;
                SettingsUrl = DictHelper.RetrieveSettingsUrl(AppId);
                ProfilesUrl = DictHelper.RetrieveProfilesUrl(AppId);
                NotisUrl = DictHelper.RetrieveNotisUrl(AppId);

                // set LogoutUrl
                var config = controller.HttpContext.RequestServices.GetRequiredService<IConfiguration>();
                var authHost = config.GetBootstrapAdminAuthenticationOptions().AuthHost;
                var uriBuilder = new UriBuilder(authHost);
                uriBuilder.Path = uriBuilder.Path == "/" ? CookieAuthenticationDefaults.LogoutPath.Value : $"{uriBuilder.Path.TrimEnd('/')}{CookieAuthenticationDefaults.LogoutPath.Value}";
                uriBuilder.Query = $"AppId={AppId}";
                LogoutUrl = uriBuilder.ToString();

                // set Icon
                var icon = $"/{DictHelper.RetrieveIconFolderPath().Trim('~', '/')}/{user.Icon}";
                Icon = user.Icon.Contains("://", StringComparison.OrdinalIgnoreCase) ? user.Icon : (string.IsNullOrEmpty(config.GetValue("SimulateUserName", string.Empty)) ? $"{authHost.TrimEnd('/')}{icon}" : "/images/admin.jpg");
                if (!string.IsNullOrEmpty(user.Css)) Theme = user.Css;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        public string UserName { get; } = "";

        /// <summary>
        /// 
        /// </summary>
        public string DisplayName { get; } = "";

        /// <summary>
        /// 获得/设置 用户头像地址
        /// </summary>
        public string Icon { get; } = "";

        /// <summary>
后面还有 20 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。