寻找有关支持Webseal Authentication .net应用程序的更改的建议

时间:2011-12-18 21:02:20

标签: .net forms-authentication webseal

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

在这个新模型下,所有身份验证都将由webseal层完成。根据我的理解,一旦经过身份验证,webseal就会在标题中添加一个令牌,表明用户已经与用户ID一起进行了身份验证。

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

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

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

任何建议或指示都会有所帮助。

2 个答案:

答案 0 :(得分:1)

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

模块是实现IHttpModule接口的类。在Init方法中,您可以将自定义处理程序附加到AuthenticateRequest的{​​{1}}。您的自定义处理程序应负责重新创建标识,即将HttpApplication HttpContext设置为实现User的任何对象(您可以使用内置IPrincipal

然后在GenericPrincipal的适当部分注册您的模块,您就完成了。

有关详细信息,请向Google询问" c#自定义身份验证模块"。

答案 1 :(得分:0)

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