问题标签 [identity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
authorization - 从 ADFS 迁移到日内瓦框架
我的公司需要联合身份解决方案,作为 Microsoft 商店,我们希望使用 MS 技术来实现这一目标。
我们在生产中没有 Server 2008 或 .NET 3.5,因此我们仅限于基于 .NET 2.0/Server 2003 的解决方案。
这意味着(就联合身份解决方案而言)Active Directory 联合服务。
ADFS 看起来不错,因为它支持 WS-Federation 标准,这意味着我们可以与不使用 Microsoft 技术的合作伙伴进行联合。
不幸的是(对我们来说),微软即将发布基于 .NET 3.5 的身份框架,即日内瓦框架。
日内瓦框架似乎在各方面都优于 ADFS(主要是因为它是 ADFS 加上额外的功能和标准支持)。
由于我们不是 .NET 3.5 商店,并且 Geneva 仅处于测试阶段,因此目前这对我们来说不是一个可行的选择。
我的问题是:我们从 ADFS 搬到日内瓦有多难?
我们正处于 ADFS 的概念验证阶段,因此我们还没有开始深入研究从基于身份的授权转移到基于声明的 ADFS 所需的代码更改。我确信我们可以将这个逻辑放在一个可以更新以支持基于日内瓦声明的身份验证的程序集中。
除了所需的代码更改之外,将我们基于声明的基础架构从 ADFS 迁移到日内瓦会有多困难?(例如从 ADFS 的 STS(联合服务)迁移到日内瓦的 STS(日内瓦服务器))
感谢您对此主题的任何意见,非常感谢!
linq-to-sql - 如何在 LINQ-To-SQL (IDENTITY INSERT) 中手动设置身份字段
我有一个表,通常在插入时,自动键会增加。但是,在某些情况下我们想要设置 ID(就像在 SQL 中使用“IDENTITY INSERT”很容易做到的那样)。
有没有办法用 LINQ to SQL 来完成这个?
谢谢,
sql-server - 批量修改 SQL Server 中的唯一 ID
[这有点不寻常的问题,我知道……]
我需要的是一个脚本,它将每个唯一的 id 值更改为我们数据库中的新值。问题是我们有可以在我们的软件实例之间导出的配置表,这些配置表是 id 敏感的(破坏现有的 id)。多年前,我们在我们的开发“标准配置”和我们客户的实例之间建立了一个“足够宽”的 id 差距,现在这个差距不够大:( - 例如,当客户导入我们的标准配置时,我们会遇到 id 冲突。
执行以下操作的 sql 脚本绝对是我们可以做的最简单/最短时间范围的事情。例如,修复代码太复杂且容易出错。请注意,我们并没有“消除”这里的问题。只需将差距从 1000 变为 1000000 或更多(现有的差距需要 5 年才能填补)。
我相信最简单的解决方案是:
- 将我们所有的表更改为 UPDATE_CASCADE(它们都不是 - 这将大大简化脚本)
- 使用我们想要的新的最低 id 创建一个身份表
- 对于每个表,将 id 修改为标识表中的下一个(在必要时使用标识插入修饰符标志)。也许在处理完每个表之后,我们可以重置身份表。
- 关闭 UPDATE_CASCADE,并删除标识表。
有没有人有任何脚本(或部分脚本?)。我会投票赞成任何有用的东西:)。
asp.net - asp.net gridview 的问题
我在删除gridview时遇到问题。我有带有Id,Name,Address,Phone的表名Doctor。Id是自动生成的字段。在我在gridview中显示时添加数据后,如果再次从gridview中删除任何id,那么如果我添加任何新的表格中的详细信息从新数字开始。我的意思是,如果我删除最后一个 id 号 5,那么如果我添加任何新医生,它的 id 值 6 而不是从 5 开始。我的查询是它应该从 5 重新开始。这里是我的代码。请帮助我。
database - 使用什么类型的数据库记录 ID:long 还是 guid?
近几年在使用MSSQL数据库,表中所有唯一记录的ID列类型为bigint(long)。它是自动递增的,通常 - 工作正常。
目前我观察到人们更喜欢使用 GUID 来识别记录。
将 bigint 交换为 guid 以获得唯一记录 ID 是否有意义?
我认为这是没有意义的,因为生成 bigint 和排序总是比 guid 快,但是......当使用两个(或更多)分离的应用程序和数据库实例并使它们保持同步时会出现一些麻烦,所以你必须管理 sql 服务器之间的 id 池(例如:sql1 使用从 100 到 200 的 id,sql2 使用从 201 到 300 的 id) - 这是一个薄冰。使用 guid id,您不必关心 id 池。
您对我的镜像应用程序(和数据库)有何建议:继续使用传统 ID 还是转向 GUID?
提前感谢您的回复!
sql-server - 您如何判断下一个身份列将是什么?
是否有一个 tsql 查询来告诉它期望用于下一行插入的 SQL 服务器标识列值?
编辑添加:
我删除并重新创建了一个表
作为我的 CREATE TABLE 命令的一部分。我还尝试在删除该表中的所有信息时重新设置标识列,但这并不总是有效。这让我想知道是否有办法查看 SQL 预期将用于您的下一个身份列号。
c# - 用于类型推断的通用标识函数
我想知道这是否可能,因为我 5 分钟的实验证明是徒劳的。
我希望它会像这样简单:
但这无法在采用 Func 参数的泛型方法上编译。例如 OrderBy。即使指定类型参数(这正是我想要避免的!),它也无法编译。
接下来我尝试了一些我认为可行的方法:
也不行:((这在应用类型参数时编译,再次,不是我想要的)
有没有人有幸做出这样的事情?
更新:请不要说:x => x,我知道,这很明显!我要的是一个函数,而不是一个表达式:)
更新2:当我提到身份时,我的意思是在功能意义上,函数只是返回您传递给它的相同对象。它可能在我遇到的每一种功能语言中都有,但那些不使用静态类型。我想知道如何使用泛型来做到这一点(如果可能的话)。只是为了好玩!
更新3:这是基于第二个想法的部分“解决方案”:
我认为除此之外没有任何可能。
sql - 如何检索通过 insert...select 插入的行的标识?
我正在通过与此类似的查询插入记录:
现在我想检索插入记录的新生成的 IDENTITY 值。如何以最少的锁定量和最大的可靠性做到这一点?
sql-server - 请提供建议:使用实体框架时的 SQL Server 标识与唯一标识符键
我正在设计一个相当复杂的系统。我们的主要关注点之一是支持 SQL Server 对等复制。这个想法是支持几个地理上分离的节点。
第二个问题是在中间层使用现代 ORM。我们的首选一直是实体框架,主要是因为开发人员喜欢使用它。(他们喜欢 LiNQ 支持。)
所以问题来了:
考虑到点对点复制,我决定对每个表的主键使用具有默认值 newsequentialid() 的 uniqueidentifier。这似乎在避免键冲突和减少索引碎片之间提供了良好的平衡。
然而,事实证明,当前版本的 Entity Framework 有一个非常奇怪的限制:如果实体的键列是唯一标识符 (GUID),则无法将其配置为使用数据库提供的默认值 (newsequentialid())。应用层必须生成 GUID 并填充键值。
所以这里是辩论:
- 放弃实体框架并使用另一个 ORM:
- 使用 NHibernate 并放弃对 LiNQ 的支持
- 使用 linq2sql 并放弃未来的支持(更不用说绑定到数据库上的 SQL Server)
- 放弃 GUID 并采用另一种 PK 策略
- 设计一种在应用层生成顺序 GUID(COMB?)的方法
我倾向于使用 linq2sql(我的开发人员真的很喜欢 linq2[stuff])和 3 的选项 1。这主要是因为我有点不知道支持我们目标的复制方案的替代关键策略,同时也让事情保持清醒开发人员的观点。
任何见解或意见将不胜感激。
sql-server - 恢复的数据库中的主键违规
我在 sql server 2005 数据库之间设置了事务复制(不可更新订阅者)。已发布数据库中的表具有标识列。表被复制没有问题。但是当我备份和恢复订阅者数据库时,我无法在包含标识增量字段的表中插入行,并且它说,发生主键冲突。如果我在删除和重新创建此标识属性或将标识种子值重置为表的行数后尝试,它允许插入。我需要指导在事务复制下备份和恢复订阅者数据库以避免此类问题。
谢谢,P.Gopalakrishnan。