美文网首页一、ABP知识点篇
4.会话属性 AbpSession

4.会话属性 AbpSession

作者: 落地成佛 | 来源:发表于2017-08-25 17:17 被阅读40次

一、概述

AbpSession提供获取用户ID,租户ID,身份类型的一些信息。
AbpSession不是Session,服务器重启并不会导致丢失数据。

二、使用

2.1 Abp.Zero已经提供了登录实现,可以从官网拉取Abp.Zero的代码查阅。

基本思路是:根据用户名密码去核对用户信息,然后再根据用户信息去构造身份证(CliamsIdentity)并保存,Abp就可以根据身份证获取用户信息

2.2AbpSession扩展

2.2.1登录前添加Cliam(身份信息)

定位到AccountController,修改SignInAsync方法,在调用AuthenticationManager.SignIn之前添加下面代码:
identity.AddClaim(new Claim(ClaimTypes.Email, user.EmailAddress));

2.2.2定义IAbpSession扩展类获取扩展属性

namespace LearningMpaAbp.Extensions
{
    /// <summary>
    /// 通过扩展方法来对AbpSession进行扩展
    /// </summary>
    public static class AbpSessionExtension2
    {
        public static string GetUserEmail(this IAbpSession session)
        {
            return GetClaimValue(ClaimTypes.Email);
        }

        private static string GetClaimValue( string claimType)
        {
            var claimsPrincipal = DefaultPrincipalAccessor.Instance.Principal;

            var claim = claimsPrincipal?.Claims.FirstOrDefault(c => c.Type == claimType);
            if (string.IsNullOrEmpty(claim?.Value))
                return null;

            return claim.Value;
        }
    }
}

作者:圣杰
链接:http://www.jianshu.com/p/930c10287e2a
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

通过扩展类,我们不需要做其他额外的更改,即可通过ApplicationService, AbpController 和 AbpApiController 这3个基类已经注入的AbpSession属性调用GetUserEmail()来获取扩展的Email属性。

三、其他

3.1AbpSession 关键属性:

UserId: 当前用户的标识ID,如果没有当前用户则为null.如果需要授权访问则它不可能为空。
TenantId: 当前租户的标识ID,如果没有当前租户则为null。
MultiTenancySide: 可能是Host或Tenant。

相关文章

  • 4.会话属性 AbpSession

    一、概述 AbpSession提供获取用户ID,租户ID,身份类型的一些信息。AbpSession不是Sessio...

  • ABP知识点目录

    1.模块化2.ABP配置3.依赖注入4.会话AbpSession5.缓存6.日志记录7.设置配置8.AutoMap...

  • Linux Screen常用技巧

    1.安装screen 2.创建新的会话 3.查看会话 screen -ls 列出所有会话 4.进入会话方法一 方法...

  • iOS 录制语音和播放语音功能的实现

    录制 0.设置全局属性 1.设置存储路径 2.设置音频会话分类 3.开始录音 4.停止录音 播放 1.播放录音 2...

  • 4.会话管理技术

    7.会话管理技术 7.1Cookie详解 Cookie 是sun公司定义的一个操作cookie对象,cookie理...

  • 扩展AbpSession

    通过扩展方法的思路来进行扩展IAbpSession 属性具体代码如下:

  • 5.fiddler状态面板的使用

    1.命令行面板 2.控制fiddler是否工作 3.过滤会话来源 4.记录当前会话数量 5.显示当前会话地址

  • 4. 属性

    1. 定义: 属性结合了字段和方法的多个方面。 对于对象的用户,属性显示为字段,访问该属性需要相同的语法。 对于类...

  • 图文混排

    1.简单设置带属性的字符串 用表情代替带【】的文字(qq会话,微信会话)

  • ORACLE数据库事务隔离级别 之SERIALIZABLE

    1.准备测试表及数据 2.插入测试数据 3.查看数据分布 4.测试会话1 5.测试会话2 6.回到测试会话1

网友评论

    本文标题:4.会话属性 AbpSession

    本文链接:https://www.haomeiwen.com/subject/obzudxtx.html