我们目前正在为我们的 Intranet 站点使用表单身份验证,并希望允许用户通过 Windows 身份验证来进行身份验证。这将如何影响当前的用户帐户、配置文件和角色。我在网上看到我可以混合两种身份验证类型并将角色和配置文件放在单独的数据库中,但是如何将现有角色和配置文件分配与 Windows 身份验证用户登录链接?
3 回答
我不确定您是否可以完全按照您的要求进行操作,但是您可以编写代码摆脱这种情况,您可以编写功能要求经过 Windows 身份验证的人输入您已经拥有的唯一凭证(例如一个电子邮件地址),如果他们通过单击链接做出响应,您就可以以编程方式转换用户帐户。
您可以创建新帐户并从旧的非 Windows 身份验证帐户导入信息,然后删除旧帐户。但是,作为迁移的一部分,依赖于 UserId 的所有数据库记录都需要在此方法中进行更改。
取决于您想要的集成程度,但如果它是单点登录,则不会推动这一点。让用户的 sid 在配置文件角色等中查找它(可以向它们添加 sid 列,但一个简单的 sid - userid 表会更好。
如果他们在那里,你就可以走了。如果他们不使用表单认证来识别他们并添加从他们的 sid 到用户 ID 的映射。所以他们会再次被问到,仅此而已。
无论如何,您可能需要一个类似的机制,以防 sid 发生变化,这可能发生在各种 Windows 问题之后。或者说非 Windows 用户的匿名访问。
如果您不喜欢 sid 作为 id,那么其他一些例如域\用户名可能会这样做。
Windows 组/角色到应用程序角色以进行完全集成是另一个步骤,以及合理化配置文件信息(如全名等)。
以任何方式快速启动都很好,而无需搜索现在使用用户 ID 的所有内容并进行更改。