在 WSS 的数据库中,UserInfo表的 tp_SystemId 记录的是用户登录验证时需要用到的数据,是此用户在 AD( Active Directory ) 中的 SID( Security ID )。此字段的数据很重要,不小心改动的话,此用户将不能登录 WSS。

这里介绍一下如何修复 tp_SystemID 字段。
假设不能登录的用户叫 nt_user( UserInfo表中的 tp_Login 字段的值应该为 <Domain>\nt_user )。

  1. 在 AD 中找到此用户

       string stPath = "LDAP://" + System.Environment.UserDomainName;
         string stFilter = "(&(sAMAccountname=nt_user)(objectclass=user))";
       DirectoryEntry userEntry = null;

       DirectoryEntry dirEntry = new DirectoryEntry( stPath );

       // Create a DirectorySearcher object
       DirectorySearcher searcher = new DirectorySearcher( dirEntry );
       searcher.SearchScope = SearchScope.Subtree;
       searcher.Filter = stFilter;
       searcher.PropertiesToLoad.Add( "objectSID" );

       // Analyse the results
       SearchResultCollection results = searcher.FindAll();
       Console.WriteLine( "Search result count: {0}", results.Count );
       if( results.Count>0 )
       {
          userEntry = results[0].GetDirectoryEntry();
       }
       else
       {
          // Can not find the user.
       }

  2. 获取此用户的 SID 值
    用户的 SID 值可以用 objectSID 属性获取。

    byte [] sid = userEntry.Properties["objectSID"].Value as byte[];
        string stSID = BytesToHexString( sid );

        public static string BytesToHexString( byte [] bytes )
        {
            System.Text.StringBuilder hexString = new System.Text.StringBuilder();
            for( int counter=0; counter<bytes.Length; counter++ )
                hexString.AppendFormat( "{0:x2}", bytes[counter] );
        }
  3. 更新 UserInfo 表
    打开查询分析器或自己写程序可以直接更新 WSS 数据库表 UserInfo 的 tp_SystemID 字段的值。
  4. 在浏览器中再次访问 WSS 网站,用户就可以成功登录了!

WSS 数据库表中的 UserInfo 表中的 tp_SystemId 字段的使用相关推荐

  1. mysql查询动态表名的数据类型_Mysql中查询某个数据库中所有表的字段信息

    前言 有时候,需要在数据库中查询一些字段的具体信息,而这些字段又存在于不同的表中,那么我们如何来查询呢? 在每一个数据库链接的information_schema数据库中,存在这样一张表--COLUM ...

  2. django学习笔记--数据库中的多表操作

    1.Django数据库----多表的新增操作 1.一对一模式下新增 创建一个详情对象,把这个对象赋值给创建的新的user对象 author_detail = models.AuthorDetail.o ...

  3. Oracle表里的照片怎么导出来,如何导出oracle数据库中某张表到excel_oracle数据库表格导出到excel...

    如何将oracle数据库表字段导成excel表格 这个你只要用ADO连oracle并获取记录集,根据你用的编程语言打开EXCEL,然后操作EXCEL对象的工作表就可以了.以VB为例: 1.在工程中引用 ...

  4. SQL Server 将指定的数据库中的所有表都列出来

    在很多情况下我们需要将指定的数据库中的所有表都列出来.在使用c#进行软件开发时,我们有哪些方法可是实现这个目的呢?本人对此进行概要的总结,有以下6中方式可以实现这个目的. 1.sqldmo SQLDM ...

  5. mysql select 所有表_怎样用SQL语句查询一个数据库中的所有表

    展开全部 查询32313133353236313431303231363533e59b9ee7ad9431333431356639一个数据库中的所有表sql语句是show tables: 显示所有数据 ...

  6. oracle数据库多表嵌套,sql – 在oracle中更新多个嵌套表中的多个记录

    也许避免在数据库中使用嵌套表的最佳原因是它们难以使用,并且语法文档未被记录且难以理解. 继续! 这是一个带有嵌套表的表. SQL> select f.force_name, t.id, t.na ...

  7. SQL SERVER 数据库 怎么从一个服务器一个表中把数据插入到另一个服务器中的一个表内(纯复制)...

    2019独角兽企业重金招聘Python工程师标准>>> 在这里有两个概念:本地数据源.远程数据源! 本地数据源指的是单个服务器上的数据而远程数据源指的是另一个SQL实例上的数据. 如 ...

  8. mysql查询时给字段加内容,mysql数据库查询之对应库对应表中的注释信息查询以及加字段查询...

    select * from information_schema.columns where table_schema = 'db' #表所在数据库 and table_name = 'tablena ...

  9. 获取数据库中的所有表

    本Blog登出后受到了大家的关注,其中"盛国军"朋友提出了使用存储过程"sp_tables"也可以实现这个目的,所有本人对这个Blog有进行了完善. 在很多情况 ...

最新文章

  1. Bert代码详解(一)重点详细
  2. 一份详细的“入坑Phd指南”---教你如何做笔记、整理参考书目、管理时间、如何写作、对自己和导师合理预期...
  3. C\S B\S 结果,其实就是这个样子的。
  4. 成为DBA的艰辛之路————需要掌握一笔不小的知识
  5. 数据产品通用复合指标查询计算的实践
  6. bootstrap禁用点击空白处关闭模态框
  7. Python多任务——进程
  8. treelist 判断父子节点_DOM(4)-节点
  9. 最新linux搭建gfs系统--iscsi+GFS实现网络存储
  10. wacom怎么调压感_wacom手绘板_wacom手绘板的钢笔压力怎么设置?
  11. Spring框架的本质:4那些高曝光率的Annotation
  12. 全新TP开发聚合支付系统源码+兼容全部易支付
  13. EXCEL中关于角度的输入、输出及转换计算技巧
  14. 信息系统服务器搬迁,系统搬迁方案
  15. 服务过载保护设计与实施
  16. 嵌入式开发日记(3)——利用Python接收并处理JY61传感器数据
  17. 移动终端开发详解总结(一)(kotlin版)| CSDN创作打卡
  18. python zxing 识别条码_Python zxing 库解析(条形码二维码识别)
  19. 程序员高效率工作工具归纳(上)
  20. 汽车专场 | 新能源汽车动力电池PACK CAE分析实例解读

热门文章

  1. jq多选框全选,多选
  2. extern、static
  3. mysql索引原理剖析
  4. Spring基础学习笔记-Bean的基础知识
  5. 数学题 HDOJ——2086 简单归纳
  6. [剑指offer][JAVA]面试题第[18]题[删除链表的节点]
  7. 弟子规python编程游戏_《Python游戏趣味编程》 第11章 消灭星星
  8. D - F e n d 簡 單 教 學 DOSBOX Easy Shell 【玩DOS游戏的必备软件】
  9. ajax 提交 .net ispostback不执行,ASP.NET基于Ajax的Enter键提交问题分析
  10. swift 隐藏状态栏_如何在Swift iOS应用中隐藏状态栏?