从表单身份验证转换为Windows身份验证

时间:2012-04-12 21:41:08

标签: asp.net authentication

我们目前正在为我们的Intranet站点使用表单身份验证,并希望允许用户通过Windows身份验证进行身份验证。这将如何影响当前用户帐户,配置文件和角色。我在网上看到,我可以混合两种身份验证类型,并将角色和配置文件放在一个单独的数据库中,但如何将现有角色和配置文件分配与Windows身份验证用户登录相关联?

3 个答案:

答案 0 :(得分:3)

我不确定你是否可以完全按照你要求的方式做到这一点,但是你可以编写出你的方法,你可以编写需要经过Windows身份验证的人输入你已经拥有的凭证的功能,这是如果他们通过单击链接进行响应,则可以以编程方式转换用户帐户(例如,电子邮件地址)。

您可以创建新帐户并从旧的非Windows身份验证帐户导入信息,然后删除旧帐户。但是,作为迁移的一部分,需要在此方法中更改依赖UserId的所有db记录。

答案 1 :(得分:2)

取决于你想要的整合程度,但如果是单点登录就不会推动这一点。 让用户的sid在配置文件角色等中寻找它(可以为它们添加sid列,但是一个简单的sid - userid表会更好。

如果他们在那里你很高兴。 如果他们没有使用表格身份验证来识别他们并从他们的sid touserid添加一个映射。所以他们会再次被问到这就好了。

无论如何,如果sid发生变化,你可能需要一个类似的机制,这可能发生在各种Windows问题之后。或者说对非Windows用户进行匿名访问。

如果你不喜欢sid作为id,那么其他一些例如域\用户名可能会这样做。

windows组/角色到应用程序角色的完全集成是另一个步骤,就像那样 合理化全名等资料信息。

这是一个很好的快速启动,无需浏览现在使用用户ID的所有内容并进行更改。

答案 2 :(得分:0)

最后回来回答这个问题。我们实际上已经废弃了我们在表单身份验证中所拥有的内容。对于Windows身份验证,角色的工作方式与配置文件的工作方式完全不同。我们使用自定义配置文件提供程序而不是内置配置文件提供程序如果有人对我们所做的事情感兴趣,我会整理一系列四篇博文,详细介绍我们在环境中所做的工作以及我们遇到的一些问题:Part 1Part 2,{ {3}}和Part 3