Anduin Xue
Anduin Xue

Anduin's Tech Blog

All Posts in 2020.3


Bootstrap dark theme minimum style

随着苹果和安卓系统对暗色模式的广泛支持,网站适配暗色主题已成为用户体验的关键需求。本文提出了一种基于Bootstrap框架的最小化样式解决方案,通过CSS媒体查询`@media (prefers-color-scheme: dark)`和JavaScript的`matchMedia`方法,实现对用户系统暗色模式设置的自动检测。当检测到暗色模式时,通过动态切换`.navbar-light`到`.navbar-dark`、添加`.bg-dark`背景类等操作,仅需修改少量核心元素的样式即可完成主题切换。然而这种方案仍需针对输入框、表单控件等特定元素额外编写CSS覆盖默认样式,例如通过`!important`强制覆盖Bootstrap的亮色主题样式。尽管代码实现了基础功能,但如何平衡样式覆盖带来的兼容性问题,是否可以通过更优雅的方式实现主题切换而非逐个元素手动处理,以及如何设计用户自定义主题的优先级机制,这些问题仍值得深入探讨。当系统暗色模式与用户个性化偏好产生冲突时,我们是否应该为网站提供独立的主题切换开关?或许答案就藏在代码之外的设计哲学里。--Qwen3

Web CSS Bootstrap Media Query Style Dark theme

Microsoft account integrated sign in via C#

这篇博客详细解析了如何通过C#实现Microsoft账户集成登录的完整开发流程。文章从Azure门户创建应用开始,展示了如何配置租户权限与重定向URI的关键设置步骤,特别强调了应用ID与密钥的生成与管理机制。通过代码示例演示了OAuth2.0授权码流程的核心实现,包括构建授权请求链接、处理回调代码、获取访问令牌及调用Graph API获取用户信息的完整链路。文章创新性地结合Aiursoft.XelNaga库的AiurUrl工具类,展示了如何优雅构建API请求并处理响应数据,最终通过MicrosoftUserDetail类解析用户核心信息字段。整个过程不仅提供了标准实现方案,更通过代码注释与异常处理机制的展示,揭示了实际开发中可能遇到的认证失败场景处理策略。文章最后抛出值得思考的问题:当企业需要同时支持多租户场景时,如何通过微软认证体系实现灵活的账户隔离?当用户信息需要扩展时,如何通过Graph API的其他接口获取更多数据维度?这些开放性问题为读者提供了延伸思考的空间,而附带的GitHub源码链接则为实践提供了直接的技术落地方向。--Qwen3

ASP.NET Core Azure Microsoft OAuth Login Authentication

Install Azure CLI on Windows 10 and use it in bash

本文探讨了Azure CLI在Windows 10系统中安装后如何突破命令行环境限制实现跨平台调用的创新实践通过分析Azure CLI的安装过程揭示了其在PowerShell中的天然适配性并深入剖析了git-bash环境中无法识别az命令的底层原因——源于Windows命令行文件扩展名与Unix-like系统调用机制的兼容性差异文章创新性地提出通过创建系统级可执行文件实现命令调用的跨环境适配方案展示了如何利用Bash脚本技术将Windows命令行接口转化为符合Unix规范的执行入口进而实现az命令在Linux风格环境中的无缝调用这一解决方案不仅解决了具体的技术痛点更启发我们思考现代开发工具在多平台协作中的本质需求:如何打破技术栈的物理边界构建更流畅的跨系统开发体验?当开发者面对不同环境的工具链时是否应该更多地考虑接口的抽象化设计?而这种跨平台兼容性的实现是否预示着未来开发工具的统一化趋势?--Qwen3

bash Azure Azure CLI PowerShell Installation Bash Integration

Ubuntu bash experience for Windows Terminal without Linux subsystem

本文探讨了如何在Windows Terminal中构建接近Ubuntu的Bash体验而无需依赖Linux子系统通过Git Bash的集成与主题定制实现跨平台开发环境的统一文章逐步解析了从安装Git Bash到配置Windows Terminal为默认终端的过程重点包括通过JSON配置文件将Bash设为启动项调整配色方案以还原Ubuntu视觉风格优化快捷键映射以及扩展右键菜单功能等技巧同时引入PowerShell 7和第三方插件进一步增强功能扩展性这种将Windows原生工具与开源生态结合的方式不仅提升了开发效率更激发了读者思考:当终端界面超越操作系统的界限时我们是否正在重新定义人机交互的边界?如何通过个性化配置让工具真正适配开发者思维?或许答案就藏在每一次对Ctrl+V的重新定义中--Qwen3

bash Ubuntu Windows 10 Windows Terminal Git bash Ubuntu theme

Publish app from Azure DevOps to non-global Azure like Azure CN

如何将Azure DevOps构建的应用发布到非全球Azure环境例如Azure CN?这篇文章系统解析了跨环境部署的技术路径。当开发者习惯于Azure Global的便捷部署时,面对Azure China Cloud等隔离环境时常常陷入权限配置的困境——如何让自动化流水线突破订阅可见性的限制?文章通过构建服务主体的完整链路给出答案:从Azure AD注册应用开始,通过生成密钥和分配贡献者权限建立身份信任,最终在Azure DevOps中配置自定义云环境的服务连接。这个过程揭示了多云架构下身份认证的核心逻辑:当订阅ID和租户ID成为连接不同云环境的密码时,如何通过服务主体实现自动化部署的权限穿透?尤其值得关注的是手动配置服务连接时的环境选择机制,它打破了自动配置仅显示全球订阅的限制,为混合云场景下的持续交付提供了技术范式。当开发者面对复杂的多云环境时,是否应该重新思考统一身份管理的架构设计?在服务主体密钥的安全存储与权限最小化原则之间,又该如何平衡自动化部署的效率与风险?这些开放性问题为读者打开了持续集成的深度思考空间。--Qwen3

Azure App Service Azure Azure DevOps DevOps Azure CN China