我有一个MVC3网站,现在使用表单身份验证,它运行良好。该网站要求客户互联网用户拥有我们提供的登录。另外,我有一些用于站点管理的内部用户帐户。
我正在考虑创建一个网络用户可以导航到的第二个Intranet站点,该站点将使用Windows身份验证对其进行身份验证。我想将Windows用户映射到上面提到的一个内部用户帐户。经过身份验证和映射后,我想将它们从这个Intranet站点重定向到我刚刚映射到它们的登录的Internet站点。
我已经尝试了一些混合的Windows / Forms身份验证解决方案,但是它们不能与MVC3和IIS7一起使用,因为它们中的大多数都是非常糟糕的,并不适用于后来的技术。
我想知道在走这条路之前这是否值得尝试?
如果是这样的话...... 如何从Intranet站点重定向并将登录名传递到Internet站点?
提前致谢, 杰夫
答案 0 :(得分:1)
这是一种方式:
如果您有2个网站:
www.mywebsite.com和intranet.mywebsite.com
在Internet站点上(在Windows身份验证识别出用户之后),使用FormsAuthentication API设置一个FormsAuthentication cookie,该cookie随后将在外部站点上有效。
FormsAuthentication.SetAuthCookie(currentUser.Name, false);
设置FormsAuthentication cookie后,外部站点将看到用户登录时的方式与使用外部站点上的FormsAuthentication登录时相同。
P.S。还要确保在所有计算机上安装KB2416472(其表单身份验证漏洞更新)
答案 1 :(得分:0)
请在此处查看我的回答:
How to Elevate Role in ASP.net From anonymous to windows auth?
我在IIS 7中找不到这样做的方法。这似乎是一个错误的设计,因为IIS 6确实允许这样做。