我有两个使用ASP.net编程的面向互联网的站点:
example.com
和 site1.example.com
它们分别部署在不同地理位置的自己的服务器上。
site1.example.com
- 托管第三方应用程序
- 使用表单进行Windows身份验证(本地Windows用户)
- 我拥有完全的服务器访问权限。
- 我只能修改配置/视图代码(无法修改二进制文件)
example.com
- 我可以更改的所有自定义代码
- 针对数据库的表单身份验证
需要发生的是:
- 用户登录
example.com
- 从数据库检索 Windows 凭据(基于当前登录的用户)
- 用户在后台使用
site1.example.com
进行身份验证 example.com
链接到site1.example.com
上的资源- 现在用户可以访问
site1.example.com
上的资源
我创建了此黑客来使其工作:
- 将加密凭据附加到
site1.example.com
登录网址 - 在
example.com
上创建指向特殊登录网址的隐藏 iFrame。 - 修改
site1.example.com
登录页面以- 解密登录凭据
- 通过 JavaScript 将它们输入用户名/密码框并单击提交
site1.example.com
必须加载两次,才能使其资源可用(一次显示登录页面,一次在页面提交后)。这可能需要一些时间。
有没有一种方法可以让 example.com
通过单个请求在后台与 site1.example.com
进行身份验证(而不是现在所做的两个请求)?
模拟身份 在 site1.example.com
端看起来很有前途,但如果我从视图运行它,它的代码实现是否有效?
联合身份 似乎是关键,但它非常令人不知所措。我能否在不修改一个端点上的二进制文件的情况下实现它(例如示例)?它是否支持混合表单和 Windows 身份验证,或者只允许 Windows 用户在不同的 Windows 域之间建立链接?"
example.com
:使用哈希凭据的FormsAuthentication。site1.example.com
:具有不同于example.com的用户。使用Windows身份验证的Forms。我猜它是AD。 - user1886419