首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在类库中访问User.Identity.GetUserId()

在类库中访问User.Identity.GetUserId()的方法是通过使用ASP.NET Identity框架来实现用户身份验证和授权的功能。ASP.NET Identity是一个用于管理用户身份验证和授权的框架,它提供了一组API和类库,可以方便地在应用程序中进行用户身份验证和授权的操作。

要在类库中访问User.Identity.GetUserId()方法,需要进行以下步骤:

  1. 添加对Microsoft.AspNet.Identity.Core和Microsoft.AspNet.Identity.EntityFramework的引用。这两个包是ASP.NET Identity框架的核心组件,用于提供用户身份验证和授权的功能。
  2. 在类库中创建一个继承自IdentityUser的自定义用户类。IdentityUser是ASP.NET Identity框架中表示用户的默认实现类,它包含了一些常用的用户属性,如Id、UserName等。
代码语言:txt
复制
public class ApplicationUser : IdentityUser
{
    // 可以在这里添加自定义的用户属性
}
  1. 在类库中创建一个继承自IdentityDbContext的自定义数据库上下文类。IdentityDbContext是ASP.NET Identity框架中表示数据库上下文的默认实现类,它包含了一些用于管理用户和角色的数据库表。
代码语言:txt
复制
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
}
  1. 在类库中创建一个继承自IdentityUserClaim<string>的自定义用户声明类。IdentityUserClaim是ASP.NET Identity框架中表示用户声明的默认实现类,它用于存储用户的声明信息。
代码语言:txt
复制
public class ApplicationUserClaim : IdentityUserClaim<string>
{
}
  1. 在类库中创建一个继承自IdentityUserRole<string>的自定义用户角色类。IdentityUserRole是ASP.NET Identity框架中表示用户角色的默认实现类,它用于存储用户和角色之间的关联关系。
代码语言:txt
复制
public class ApplicationUserRole : IdentityUserRole<string>
{
}
  1. 在类库中创建一个继承自IdentityRole<string>的自定义角色类。IdentityRole是ASP.NET Identity框架中表示角色的默认实现类,它用于存储角色信息。
代码语言:txt
复制
public class ApplicationRole : IdentityRole<string>
{
}
  1. 在类库中创建一个继承自UserStore<ApplicationUser>的自定义用户存储类。UserStore是ASP.NET Identity框架中表示用户存储的默认实现类,它用于管理用户的创建、更新和删除等操作。
代码语言:txt
复制
public class ApplicationUserStore : UserStore<ApplicationUser>
{
    public ApplicationUserStore(ApplicationDbContext context)
        : base(context)
    {
    }
}
  1. 在类库中创建一个继承自RoleStore<ApplicationRole>的自定义角色存储类。RoleStore是ASP.NET Identity框架中表示角色存储的默认实现类,它用于管理角色的创建、更新和删除等操作。
代码语言:txt
复制
public class ApplicationRoleStore : RoleStore<ApplicationRole>
{
    public ApplicationRoleStore(ApplicationDbContext context)
        : base(context)
    {
    }
}
  1. 在类库中创建一个继承自UserManager<ApplicationUser>的自定义用户管理类。UserManager是ASP.NET Identity框架中表示用户管理的默认实现类,它用于管理用户的身份验证和授权等操作。
代码语言:txt
复制
public class ApplicationUserManager : UserManager<ApplicationUser>
{
    public ApplicationUserManager(IUserStore<ApplicationUser> store)
        : base(store)
    {
    }
}
  1. 在类库中创建一个继承自RoleManager<ApplicationRole>的自定义角色管理类。RoleManager是ASP.NET Identity框架中表示角色管理的默认实现类,它用于管理角色的创建、更新和删除等操作。
代码语言:txt
复制
public class ApplicationRoleManager : RoleManager<ApplicationRole>
{
    public ApplicationRoleManager(IRoleStore<ApplicationRole> store)
        : base(store)
    {
    }
}
  1. 在类库中创建一个继承自SignInManager<ApplicationUser>的自定义登录管理类。SignInManager是ASP.NET Identity框架中表示登录管理的默认实现类,它用于处理用户的登录和注销等操作。
代码语言:txt
复制
public class ApplicationSignInManager : SignInManager<ApplicationUser>
{
    public ApplicationSignInManager(ApplicationUserManager userManager, IAuthenticationManager authenticationManager)
        : base(userManager, authenticationManager)
    {
    }
}
  1. 在类库中创建一个继承自IdentityFactoryOptions<ApplicationUserManager>的自定义用户管理工厂类。IdentityFactoryOptions是ASP.NET Identity框架中表示用户管理工厂的默认实现类,它用于配置用户管理类的创建方式。
代码语言:txt
复制
public class ApplicationUserManagerFactory : IdentityFactoryOptions<ApplicationUserManager>
{
    public ApplicationUserManagerFactory()
    {
        Create = () => new ApplicationUserManager(new ApplicationUserStore(new ApplicationDbContext()));
    }
}
  1. 在类库中创建一个继承自IdentityFactoryOptions<ApplicationRoleManager>的自定义角色管理工厂类。IdentityFactoryOptions是ASP.NET Identity框架中表示角色管理工厂的默认实现类,它用于配置角色管理类的创建方式。
代码语言:txt
复制
public class ApplicationRoleManagerFactory : IdentityFactoryOptions<ApplicationRoleManager>
{
    public ApplicationRoleManagerFactory()
    {
        Create = () => new ApplicationRoleManager(new ApplicationRoleStore(new ApplicationDbContext()));
    }
}
  1. 在类库中创建一个继承自IdentityFactoryOptions<ApplicationSignInManager>的自定义登录管理工厂类。IdentityFactoryOptions是ASP.NET Identity框架中表示登录管理工厂的默认实现类,它用于配置登录管理类的创建方式。
代码语言:txt
复制
public class ApplicationSignInManagerFactory : IdentityFactoryOptions<ApplicationSignInManager>
{
    public ApplicationSignInManagerFactory()
    {
        Create = (context) => new ApplicationSignInManager(context.GetUserManager<ApplicationUserManager>(), context.Authentication);
    }
}
  1. 在类库中创建一个继承自IdentityFactory<ApplicationUserManager>的自定义用户管理工厂类。IdentityFactory是ASP.NET Identity框架中表示用户管理工厂的默认实现类,它用于创建用户管理类的实例。
代码语言:txt
复制
public class ApplicationUserManagerFactory : IdentityFactory<ApplicationUserManager>
{
    public override ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
    {
        var manager = new ApplicationUserManager(new ApplicationUserStore(context.Get<ApplicationDbContext>()));
        // 在这里配置用户管理类的一些属性和行为
        return manager;
    }
}
  1. 在类库中创建一个继承自IdentityFactory<ApplicationRoleManager>的自定义角色管理工厂类。IdentityFactory是ASP.NET Identity框架中表示角色管理工厂的默认实现类,它用于创建角色管理类的实例。
代码语言:txt
复制
public class ApplicationRoleManagerFactory : IdentityFactory<ApplicationRoleManager>
{
    public override ApplicationRoleManager Create(IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context)
    {
        var manager = new ApplicationRoleManager(new ApplicationRoleStore(context.Get<ApplicationDbContext>()));
        // 在这里配置角色管理类的一些属性和行为
        return manager;
    }
}
  1. 在类库中创建一个继承自IdentityFactory<ApplicationSignInManager>的自定义登录管理工厂类。IdentityFactory是ASP.NET Identity框架中表示登录管理工厂的默认实现类,它用于创建登录管理类的实例。
代码语言:txt
复制
public class ApplicationSignInManagerFactory : IdentityFactory<ApplicationSignInManager>
{
    public override ApplicationSignInManager Create(IdentityFactoryOptions<ApplicationSignInManager> options, IOwinContext context)
    {
        var manager = new ApplicationSignInManager(context.GetUserManager<ApplicationUserManager>(), context.Authentication);
        // 在这里配置登录管理类的一些属性和行为
        return manager;
    }
}
  1. 在类库中创建一个继承自IdentityDbContext<ApplicationUser>的自定义数据库上下文类。IdentityDbContext是ASP.NET Identity框架中表示数据库上下文的默认实现类,它用于管理用户和角色的数据库表。
代码语言:txt
复制
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}
  1. 在类库中创建一个继承自IdentityUserClaim<string>的自定义用户声明类。IdentityUserClaim是ASP.NET Identity框架中表示用户声明的默认实现类,它用于存储用户的声明信息。
代码语言:txt
复制
public class ApplicationUserClaim : IdentityUserClaim<string>
{
}
  1. 在类库中创建一个继承自IdentityUserRole<string>的自定义用户角色类。IdentityUserRole是ASP.NET Identity框架中表示用户角色的默认实现类,它用于存储用户和角色之间的关联关系。
代码语言:txt
复制
public class ApplicationUserRole : IdentityUserRole<string>
{
}
  1. 在类库中创建一个继承自IdentityRole<string>的自定义角色类。IdentityRole是ASP.NET Identity框架中表示角色的默认实现类,它用于存储角色信息。
代码语言:txt
复制
public class ApplicationRole : IdentityRole<string, ApplicationUserRole>
{
    public ApplicationRole()
    {
    }

    public ApplicationRole(string roleName)
    {
        Name = roleName;
    }
}
  1. 在类库中创建一个继承自UserStore<ApplicationUser, ApplicationRole, string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>的自定义用户存储类。UserStore是ASP.NET Identity框架中表示用户存储的默认实现类,它用于管理用户的创建、更新和删除等操作。
代码语言:txt
复制
public class ApplicationUserStore : UserStore<ApplicationUser, ApplicationRole, string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
    public ApplicationUserStore(ApplicationDbContext context)
        : base(context)
    {
    }
}
  1. 在类库中创建一个继承自RoleStore<ApplicationRole, string, ApplicationUserRole>的自定义角色存储类。RoleStore是ASP.NET Identity框架中表示角色存储的默认实现类,它用于管理角色的创建、更新和删除等操作。
代码语言:txt
复制
public class ApplicationRoleStore : RoleStore<ApplicationRole, string, ApplicationUserRole>
{
    public ApplicationRoleStore(ApplicationDbContext context)
        : base(context)
    {
    }
}
  1. 在类库中创建一个继承自UserManager<ApplicationUser, string>的自定义用户管理类。UserManager是ASP.NET Identity框架中表示用户管理的默认实现类,它用于管理用户的身份验证和授权等操作。
代码语言:txt
复制
public class ApplicationUserManager : UserManager<ApplicationUser, string>
{
    public ApplicationUserManager(IUserStore<ApplicationUser, string> store)
        : base(store)
    {
    }
}
  1. 在类库中创建一个继承自RoleManager<ApplicationRole, string>的自定义角色管理类。RoleManager是ASP.NET Identity框架中表示角色管理的默认实现类,它用于管理角色的创建、更新和删除等操作。
代码语言:txt
复制
public class ApplicationRoleManager : RoleManager<ApplicationRole, string>
{
    public ApplicationRoleManager(IRoleStore<ApplicationRole, string> store)
        : base(store)
    {
    }
}
  1. 在类库中创建一个继承自SignInManager<ApplicationUser, string>的自定义登录管理类。SignInManager是ASP.NET Identity框架中表示登录管理的默认实现类,它用于处理用户的登录和注销等操作。
代码语言:txt
复制
public class ApplicationSignInManager : SignInManager<ApplicationUser, string>
{
    public ApplicationSignInManager(ApplicationUserManager userManager, IAuthenticationManager authenticationManager)
        : base(userManager, authenticationManager)
    {
    }
}
  1. 在类库中创建一个继承自IdentityFactory<ApplicationUserManager>的自定义用户管理工厂类。IdentityFactory是ASP.NET Identity框架中表示用户管理工厂的默认实现类,它用于创建用户管理类的实例。
代码语言:txt
复制
public class ApplicationUserManagerFactory : IdentityFactory<ApplicationUserManager>
{
    public override ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
    {
        var manager = new ApplicationUserManager(new ApplicationUserStore(context.Get<ApplicationDbContext>()));
        // 在这里配置用户管理类的一些属性和行为
        return manager;
    }
}
  1. 在类库中创建一个继承自IdentityFactory<ApplicationRoleManager>的自定义角色管理工厂类。IdentityFactory是ASP.NET Identity框架中表示角色管理工厂的默认实现类,它用于创建角色管理类的实例。
代码语言:txt
复制
public class ApplicationRoleManagerFactory : IdentityFactory<ApplicationRoleManager>
{
    public override ApplicationRoleManager Create(IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context)
    {
        var manager = new ApplicationRoleManager(new ApplicationRoleStore(context.Get<ApplicationDbContext>()));
        // 在这里配置角色管理类的一些属性和行为
        return manager;
    }
}
  1. 在类库中创建一个继承自IdentityFactory<ApplicationSignInManager>的自定义登录管理工厂类。IdentityFactory是ASP.NET Identity框架中表示登录管理工厂的默认实现类,它用于创建登录管理类的实例。
代码语言:txt
复制
public class ApplicationSignInManagerFactory : IdentityFactory<ApplicationSignInManager>
{
    public override ApplicationSignInManager Create(IdentityFactoryOptions<ApplicationSignInManager> options, IOwinContext context)
    {
        var manager = new ApplicationSignInManager(context.GetUserManager<ApplicationUserManager>(), context.Authentication);
        // 在这里配置登录管理类的一些属性和行为
        return manager;
    }
}
  1. 在类库中创建一个继承自IdentityDbContext<ApplicationUser, ApplicationRole, string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>的自定义数据库上下文类。IdentityDbContext是ASP.NET Identity框架中表示数据库上下文的默认实现类,它用于管理用户和角色的数据库表。
代码语言:txt
复制
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

通过以上步骤,我们在类库中就可以访问User.Identity.GetUserId()方法了。这个方法用于获取当前用户的唯一标识符。在ASP.NET Identity框架中,每个用户都有一个唯一的标识符,可以用来标识和区分不同的用户。

注意:以上步骤是基于ASP.NET Identity框架的使用,如果你使用的是其他身份验证和授权框架,可能需要进行相应的调整和修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在ThinkPHP引入第三方

thinkphp3.2.x是一个非常强大的框架,但它并不是万能的,有时候需要第三方扩展加入到里面来使用。 这里介绍一下Thinkphp3.2.3导入第三方扩展。...第三方 第三方指除了 ThinkPHP 框架、应用项目之外的其他,一般由第三方系统或产品提供, Smarty、Zend 等系统的等。...但对第三,由于不会有此约定,其后缀只能认为是 php 。为了方便的引入其他框架和系统的,ThinkPHP 特意提供了导入第三方的功能。...ext 可选,表示导入的后缀,默认是 .php 。...使用 当我们想在ThinkPHP引入第三方扩展,而第三方扩展又没有按照ThinkPHP的规范在编写的时候时,就需要将第三方扩展放置到Library/Vendor目录下,当然,这是针对ThinkPHP

2.1K30
  • 何在keras添加自己的优化器(adam等)

    tensorflow-gpu\Lib\site-packages\tensorflow\python\keras 3、找到keras目录下的optimizers.py文件并添加自己的优化器 找到optimizers.py的...adam等优化器并在后面添加自己的优化器 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class Adamsss(Optimizer...Adamsss, self).get_config() return dict(list(base_config.items()) + list(config.items())) 然后修改之后的优化器调用添加我自己的优化器...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己的优化器...(adam等)就是小编分享给大家的全部内容了,希望能给大家一个参考。

    45K30

    何在CVM实例访问对象存储

    存储桶权限配置CDC对象存储默认是私有读写权限,客户可以通过API的方式进行访问。但是客户如果要用对象文件的网络地址直接下载,则需要添加匿名访问权限,操作如下。...l 打开存储桶,进入 「Policy权限设置」 页面l 点击页面 Policy权限设置 的 添加策略 链接。l 根据要做的控制进行设置,如下截图是设置匿名访问的一个示例。...COS路径支持使用 配置参数 的桶别名,或桶名称进行访问使用桶名称访问,需要额外携带 endpoint flag。...COS 路径支持使用 配置参数 的桶别名,或桶名称进行访问使用桶名称访问,需要额外携带 endpoint flag。...host_bucket %(bucket)s. 这部分不变,后面也是CDC里对象存储的域名。

    3.4K40

    何在java创建不可变

    原文【如何在java创建不可变?】地址 今天我们将学习如何在java创建不变的。不可变对象是在初始化之后状态不变的实例。例如,String是一个不可变,一旦实例化,它的值不会改变。...在这里,我提供了一种通过一个例子来创建Java不可变的方法,以便更好地理解。 要在java创建不可变,您必须执行以下步骤。 将声明为final,因此无法扩展。...使所有字段都是私有的,以便不允许直接访问。 不要为变量提供setter方法 使所有可变字段都是最终的,以便它的值只能被分配一次。 通过执行深层拷贝的构造函数初始化所有字段。...在getter方法执行对象的克隆以返回一个副本而不是返回实际的对象引用。 要了解第4点和第5点,我们来运行Final,其效果很好,实例化后值不会被更改。...return id; } public String getName() { return name; } /** * 可变对象的访问器函数

    1.9K50

    何在Vue动态添加

    它使我们可以更轻松地编写自定义主题,根据组件的状态添加,还可以编写依赖于样式的组件的不同变体。 添加动态名与在组件添加 prop :class="classname"一样简单。...无论classname的计算结果是什么,都将是添加到组件名。 当然,对于Vue的动态,我们可以做的还有很多。...在本文中,我们将讨论很多内容: 在 Vue 中使用静态和动态 如何使用常规的 JS 表达式来计算我们的 动态名的数组语法 对象语法 快速生成名 如何在自定义组件上使用动态名 静态和动态 在Vue...,我们可以向组件添加静态和动态。...静态是那些永远不会改变的乏味,它们将始终出现在组件。另一方面,我们可以在应用程序添加和删除动态

    6.2K10

    何在 Django 创建抽象模型

    我们将学习如何在 Django 创建抽象模型。 Django 的抽象模型是一个模型,它用作其他模型继承的模板,而不是一个旨在创建或保存到数据的模型。...此抽象的属性和方法将由派生自它的任何模型继承,但不会创建新的数据表。 抽象模型可以像标准模型一样定义字段、方法和元数据。...步骤 3 - 您的抽象模型应该添加一个 Meta 内部类,抽象属性设置为 True。Django 被告知,由于这是一个抽象模型,因此不应为其构建单独的数据表。...步骤 4 − 提供抽象模型的具体模型。可以根据需要定义每个具体模型的附加变量和操作。 步骤 5 - 执行迁移以构建具体模型所需的数据表。...例 1 在这个例子,我们将在 Django 创建一个抽象模型,并使用它来更好地理解它。

    21430

    前端|如何在SpringBoot通过thymeleaf模板访问页面

    Thymeleaf的主要目标是在开发工作带来优雅的自然模板。...在传统的web开发时通常使用的是jsp页面,首先需要在pom文件引入springmvc相关的包,然后写springmvc的配置文件(包括访问资源的路径解析),之后还需再web.xml配置访问路由。...在Springboot为此提供了便捷的解决方案,需要在pom.xml添加web开发的依赖。...这样就实现了通过thymeleaf模板访问html文件。 在浏览器输入:localhost://8080/success 就能看到刚刚success.html这个页面。...原型即页面是它的特色,所谓原型即页面,就是你写的html,静态的去访问是什么样,动态的去访问还是这样,只不过动态的时候会把数据填充进去。

    1.9K20

    何在 Python 创建静态数据和静态方法?

    Python包括静态数据和静态方法的概念。 静态数据 在这里,为静态数据定义一个类属性。...如果要为属性分配新值,请在赋值显式使用名 - 站长百科网 class Demo: count = 0 def __init__(self): Demo.count = Demo.count + 1...self.count = 42 这样的赋值会在 self 自己的字典创建一个名为 count 的新且不相关的实例。...静态数据名称的重新绑定必须始终指定,无论是否在方法 - Demo.count = 314 静态方法 让我们看看静态方法是如何工作的。静态方法绑定到,而不是的对象。...静态方法无法访问或修改状态。静态方法不知道状态。这些方法用于通过获取一些参数来执行一些实用程序任务。

    3.5K20

    何在腾讯云上启用 PostgreSQL 数据远程访问

    我最近想在本地端直接连接到服务器上运行的那个数据进行查询,但是 PostgreSQL 在安装时并没有默认开启允许远程访问,必须要进行额外的配置。...本文介绍的就是如何开启 PostgreSQL 数据远程访问的具体步骤和方法。本文所列操作,也适合希望使用云服务器自建数据的同学。...按照官方文档的解释,该文件一般位于数据目录的 data 子目录下。 不过在我的线上环境,这个文件位于 /etc/postgresql/9.3/main 下。...IP 访问数据,不限制用户和数据,并且确保密码不会轻易泄露,因此输入以下记录: cd /etc/postgresql/9.3/main vim pg_hba.conf # 在文件的最后加上以下记录...vim postgresql.conf 然后,将配置的监听 IP 地址设置为 *,表示要监听来自所有 IP 的连接请求。

    7.3K21

    【DB笔试面试511】如何在Oracle写操作系统文件,写日志?

    题目部分 如何在Oracle写操作系统文件,写日志? 答案部分 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...DBMS_ALERT能让数据触发器在特定的数据值发生变化时向应用程序发送报警。报警是基于事务的并且是异步的(也就是它们的操作与定时机制无关)。...在CLIENT_INFO列存放程序的客户端信息;MODULE列存放主程序名,包的名称;ACTION列存放程序包的过程名。该包不仅提供了设置这些列值的过程,还提供了返回这些列值的过程。...如何在存储过程暂停指定时间? DBMS_LOCK包的SLEEP过程。例如:“DBMS_LOCK.SLEEP(5);”表示暂停5秒。 DBMS_OUTPUT提示缓冲区不够,怎么增加?...如何在Oracle写操作系统文件,写日志? 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。

    28.8K30

    何在.NET应用访问以太坊智能合约【Nethereum】

    在这个教程,我们将首先编写并部署一个简单的智能合约,然后创建一个简单的.NET应用,并使用Nethereum来访问以太坊上的智能合约。...Nethereum是通过以太坊节点旳标准RPC接口访问智能合约,因此使用Nethereum可以对接所有的以太坊节点实现,例如geth或parity。...在contract文件夹,创建一个新的合约文件Vote.sol: ~/hubwiz/contracts$ touch Vote.sol 按如下内容编辑Vote.sol,这个合约只是简单地跟踪两个候选人的得票数...ganache 你会看到终端输出类似下面的合约地址,拷贝下来,后面还要用到: Vote: 0xe4e47451aad6c89a6d9e4ad104a7b77ffe1d3b36 .Net应用开发与智能合约访问...windows应用

    1.7K20
    领券