zoukankan      html  css  js  c++  java
  • 有关集中用户的问题

    集中用户应该有一个“所属管理插件”的字段,记录此用户的出处,比如“内部员工”,即由“内部控制台”插件管理。
       那么用户 staff_tommy 的“所属管理插件”的字段值为“InternelWebControlPanel”.
       系统内核插件提供一个扩展点为“UserProvider”
       <extension-point id="UserProvider" name="统一用户提供者" schema="schema/UserProvider.exsd"></extension-point>
       各个需要统一用户管理功能的插件均可扩展这个扩展点,扩展规格是:必须实现以下接口:

    /// <summary>
        
    /// IUserOpCallBack 统一用户管理的回调操作。
        
    /// </summary>

        public interface IUserOpCallBack
        
    {
            
    /// <summary>
            
    /// 创建用户,创建完毕后应将具体用户的ID存入ISysUser的ExternId域
            
    /// </summary>
            
    /// <param name="transaction">事务</param>
            
    /// <param name="userContext">统一用户上下文</param>    
            
    /// <returns>创建状态</returns>

            IStatus CreateUser(IDbTransaction transaction, ISysUserContext userContext);

            
    /// <summary>
            
    /// 修改用户
            
    /// </summary>
            
    /// <param name="transaction">事务</param>
            
    /// <param name="userContext">统一用户上下文</param>
            
    /// <returns>创建状态</returns>

            IStatus ModifyUser(IDbTransaction transaction, ISysUserContext userContext);

            
    /// <summary>
            
    /// 删除用户
            
    /// </summary>
            
    /// <param name="trans">事务</param>
            
    /// <param name="userContext">统一用户上下文</param>
            
    /// <returns></returns>

            IStatus DeleteUser(IDbTransaction trans, ISysUserContext userContext);
        }
    /// <summary>
        
    /// ISysUserContext 统一用户的上下文。
        
    /// </summary>

        public interface ISysUserContext
        
    {
            
    /// <summary>
            
    /// 具体的用户对象,如职员
            
    /// </summary>

            object ConcreteUser
            
    {
                
    get ;
            }


            
    /// <summary>
            
    /// 统一用户对象
            
    /// </summary>

            ISysUser SysUser
            
    {
                
    get ;
            }

        }
    /// <summary>
        
    /// ISysUser 统一用户身份接口。
        
    /// </summary>

        public interface ISysUser
        
    {
            
    /// <summary>
            
    /// 具体类型的用户的ID
            
    /// </summary>

            int ExternId getset; }

            
    /// <summary>
            
    /// 名
            
    /// </summary>

            string SysUser_FirstName getset; }

            
    /// <summary>
            
    /// 自动编号
            
    /// </summary>

            int SysUser_Id getset; }

            
    /// <summary>
            
    /// 密码
            
    /// </summary>

            string SysUser_Password getset; }

            
    /// <summary>
            
    /// 管理此用户的插件标识
            
    /// </summary>

            string SysUser_PluginId getset; }
            
            
    /// <summary>
            
    /// 状态
            
    /// </summary>

            int SysUser_Status getset; }

            
    /// <summary>
            
    /// 姓
            
    /// </summary>

            string SysUser_SurName getset; }

            
    /// <summary>
            
    /// 账号
            
    /// </summary>

            string SysUser_Userid getset; }
        }


    用户所属的插件可以理解为用户的域,相同域的用户不能有同名的账号.
    统一用户表还应该提供一个 ExternId 的字符型字段, 其值完全由插件系统
    去提供,并由其自行理解,可以是一个 int.ToString(),也可以是一个内部编码什么的。

    一般来说,管理具体用户的插件都有一个用户表,比如职员表,(不过这个扩展空间很大,谁知道呢,也许是从AD或者LDAP中取得用户,今天还谈了个项目是从别的软件系统中通过WebService取得用户,真是千奇百怪),
    当这个插件加入系统的时候,希望不要修改这个表结构,如在此表中加入类似“统一用户ID”这样的字段,因此在统一用户表
    中加入这个ExternId字段。

  • 相关阅读:
    【ASP.NET】website转webapplication
    【.net】ASP.Net设置和取消设置web项目起始页
    【.net】“Newtonsoft.Json”已拥有为“Microsoft.CSharp”定义的依赖项。
    snmp简单使用
    saltstack系列2之zabbix-agent自动化部署
    saltstack系列1之salt-api配置与使用
    python06 深浅拷贝原理
    python05
    level 1 -- unit 4 -- where 引导的疑问句
    level1 -- unit 3
  • 原文地址:https://www.cnblogs.com/xiaotaoliang/p/455044.html
Copyright © 2011-2022 走看看