1

我们的组织正计划使用 Webseal 作为我们 .net 网站前的代理。我们目前正在针对自定义 sql server 用户表使用 .net 表单身份验证和自定义成员资格提供程序。

在这种新模型下,所有身份验证都将由 webseal 层完成。据我了解,一旦通过身份验证,webseal 只会在标头中添加一个令牌,指示用户与用户 ID 一起通过身份验证。

我希望我们的应用程序无需更改即可工作,因此我想通过构建一些将 webseal 令牌转换为常规 .net 令牌的层来构建一些东西来保护它们免受 webseal 细节的影响。

我不确定这应该在哪里完成......在某种自定义身份验证提供程序或新的会员资格提供程序中,还是?如果它是 http 模块或其他提供程序,我不希望我们的任何应用程序必须进行任何更改,除非它可能使用此新代码。

有没有人做过这种事情?对此有什么好的策略。我听说过 Windows Identity Framework,但不确定它是否是正确的解决方案。

任何建议或方向都会有所帮助。

4

2 回答 2

1

如果提供了身份验证信息(在标头中),那么能够在请求管道中使用它的最简单方法是编写自定义模块

模块是实现IHttpModule接口的类。在其Init方法中,您将自定义处理程序附加AuthenticateRequestHttpApplication. 您的自定义处理程序应该负责重新创建身份,即将HttpContext'设置User为任何实现的对象IPrincipal(您可以使用内置的GenericPrincipal)。

然后你在适当的部分注册你的模块,web.config你就完成了。

有关更多详细信息,请向 google 询问“c# 自定义身份验证模块”。

于 2011-12-18T21:10:15.123 回答
0

假设您使用的是 MVC,根据这个IBM 示例,您可以添加自定义操作过滤器以将 WebSEAL 标头中的用户信息转换为经过身份验证的用户。

于 2016-12-30T19:03:54.670 回答