当前位置: 首页 > 编程笔记 >

asp.net-core 登录视图组件

欧阳嘉
2023-03-14
本文向大家介绍asp.net-core 登录视图组件,包括了asp.net-core 登录视图组件的使用技巧和注意事项,需要的朋友参考一下

示例

默认项目模板将创建一个局部视图_LoginPartial.cshtml,其中包含一些逻辑,用于查找用户是否已登录并查找其用户名。

由于视图组件可能更合适(因为涉及逻辑,甚至注入了2个服务),因此以下示例显示了如何将LoginPartial转换为视图组件。

查看组件类

public class LoginViewComponent : ViewComponent
{
    private readonly SignInManager<ApplicationUser> signInManager;
    private readonly UserManager<ApplicationUser> userManager;

    public LoginViewComponent(SignInManager<ApplicationUser> signInManager, UserManager<ApplicationUser> userManager)
    {
       this.signInManager= signInManager;
       this.userManager= userManager;
    }

    public async Task<IViewComponentResult> InvokeAsync()
    {
        if (signInManager.IsSignedIn(this.User as ClaimsPrincipal))
        {                
            return View("SignedIn", await userManager.GetUserAsync(this.User as ClaimsPrincipal));
        }
        return View("SignedOut");
    }
}

登录视图(在〜/ Views / Shared / Components / Login / SignedIn.cshtml中)

@model WebApplication1.Models.ApplicationUser

<form asp-area="" asp-controller="Account" asp-action="LogOff" method="post" id="logoutForm" class="navbar-right">
    <ul class="nav navbar-nav navbar-right">
        <li>
            <a asp-area="" asp-controller="Manage" asp-action="Index" title="Manage">Hello @Model.UserName!</a>
        </li>
        <li>
            <button type="submit" class="btn btn-link navbar-btn navbar-link">Log off</button>
        </li>
    </ul>
</form>

SignedOut视图(在〜/ Views / Shared / Components / Login / SignedOut.cshtml中)

<ul class="nav navbar-nav navbar-right">
    <li><a asp-area="" asp-controller="Account" asp-action="Register">Register</a></li>
    <li><a asp-area="" asp-controller="Account" asp-action="Login">Log in</a></li>
</ul>

_Layout.cshtml调用

@await Component.InvokeAsync("Login")
           

 类似资料:
  • 本文向大家介绍asp.net-core 创建一个视图组件,包括了asp.net-core 创建一个视图组件的使用技巧和注意事项,需要的朋友参考一下 示例 视图组件封装了可重用的逻辑和视图。它们的定义是: 一个ViewComponent类,其中包含用于为视图获取和准备数据以及确定要呈现的视图的逻辑。 一个或多个视图 由于它们包含逻辑,因此与部分视图相比,它们更灵活,同时仍然可以促进关注点的良好分离。

  • 本文向大家介绍ASP.NET Core集成微信登录,包括了ASP.NET Core集成微信登录的使用技巧和注意事项,需要的朋友参考一下 工具: Visual Studio 2015 update 3 Asp.Net Core 1.0 1 准备工作 申请微信公众平台接口测试帐号,申请网址:(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox

  • 本文向大家介绍浅谈ASP.NET Core 2.0 部分视图(译),包括了浅谈ASP.NET Core 2.0 部分视图(译)的使用技巧和注意事项,需要的朋友参考一下 问题 如何在ASP.NET Core 2.0中使用部分视图来重用页面的公共部分? 答案 新建一个空项目,在Startup中添加MVC服务和中间件: 添加两个模型: 添加控制器,返回ViewResult并传入模型实例: 添加视图页面I

  • 安装 ASP.NET Core 和 TypeScript 首先,若有需要请安装 ASP.NET Core。此篇指南需要使用 Visual Studio 2015 或 2017。 其次,如果你的 Visual Studio 不带有最新版本的TypeScript,你可以从这里安装。 新建工程 选择 File 选择 New Project (Ctrl + Shift + N) 选择 Visual C#

  • ASP.NET Core 是一个新的开源和跨平台的框架,用于构建如 Web 应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序。ASP.NET Core 应用可运行于 .NET Core 和完整的 .NET Framework 之上。它整合了原来ASP.NET中的MVC和WebApi框架,你可以在 Windows、Mac 和 Linux 上跨平台的开发和运行你的 ASP.

  • 本文向大家介绍asp.net-core 使用NLog记录器,包括了asp.net-core 使用NLog记录器的使用技巧和注意事项,需要的朋友参考一下 示例 NLog.Extensions.Logging是.NET Core和ASP.NETCore中Microsoft的官方NLog提供程序。这里和这里分别是说明和示例。