2012-04-12 201 views
4

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

+0

Active Directory?与表单身份验证并行工作得很好。 – IrishChieftain 2012-04-12 21:52:39

+0

是的,AD,但问题不在于它们是否可以并排存在,而是如何从一个转换到另一个。 – yougotiger 2012-04-13 00:01:56

回答

0

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

3

我不确定您是否可以完全按照您的要求进行操作,但是您可以使用这种方法进行编码,您可以编写需要经过身份验证的用户输入凭证的功能,是独一无二的(比如说一个电子邮件地址),如果他们通过点击链接进行响应,则可以通过编程方式转换用户帐户。

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

+1

那么有一个'升级'向导?让他们为他们的表单身份验证信息输入某种凭证,将其重新插入新的凭证,然后删除该用户的旧表单信息? – yougotiger 2012-04-12 23:55:29

+0

是@yougotiger多数民众赞成我的意思。我有兴趣看看其他人说什么 – 2012-04-13 07:47:37

2

取决于你想如何集成,但如果它是单一的迹象不会推动这一点。 得到了用户的SID看它在配置文件中的角色等(可能SID列给他们,但一个简单的SID添加 - 用户标识表会更好

,如果他们在那里,你是好去 如果他们AREN”。 t使用表单认证来识别它们并添加一个来自他们的sid touserid的映射,所以他们会再次被问到,那就是它

无论如何,你可能需要类似的机制,在sid改变的情况下,这可能发生在各种Windows问题之后,或者对于非Windows用户的匿名访问。

如果您不喜欢sid作为id,那么其他一些例如domain \ user name可能会这样做。

Windows组/角色的全面整合应用程序角色是另一步,正如 合理化像全名等个人资料信息..

这是不错的快速启动任何办法,而不必通过一切拖网使用用户ID现在并改变它。

+0

因此,如果我正确理解你,你建议创建一个新的表,将保存AD SID和表单身份验证的用户ID,使他们两个并排存在,它翻译来来回回?即当我想获得他们的个人资料时,我会查看他们的SID,方法是查看他们的登录信息,然后拉取相应用户ID的个人资料? – yougotiger 2012-04-12 23:54:02

+0

其他方式,您从认证登录中获得sid,然后查找其现有配置文件。如果它在那里使用它,并且所有当前的东西都可以正常工作,如果它没有使用表单进行身份验证,那么下次再添加sid映射。 – 2012-04-13 08:32:22