我有一个使用 iisnode 在 .net 应用程序的子目录中运行的 nodejs 应用程序(实际上是 umbraco)。
.net 应用程序使用表单身份验证,我想使用与 .net 应用程序相同的机制来保护 iisnode 应用程序。
我已经尝试使用 iisnode 应用程序注册模块,但它似乎甚至没有触发事件处理程序。是否有可能做到这一点?
似乎创建一个 HttpModule 来拦截 nodejs 请求是不可能的。但是,我确实找到了一种方法来获取我所追求的身份验证信息。
我在我的 nodejs (expressjs) 应用程序中创建了一些中间件,这些中间件从请求中提取标头(包括 cookie),并使用这些相同的标头向 asp.net 应用程序上专门创建的 url 发出请求。
此 url 仅返回 cookie 中指定的用户的用户信息(如果存在 cookie)。如果我得到一些信息,那么我知道用户已登录。没有信息意味着他们没有登录,我重定向到 umbraco 登录页面。