我有一个正在开发的网站,它同时具有 Intranet 和 Internet 部署。两者之间的唯一区别是几个配置设置。
互联网版本工作正常,因为它只使用表单身份验证(在其 web 配置中定义),如果未登录,用户将被定向到登录页面。
Intranet 版本有点棘手......当用户第一次访问该站点时,使用 WindowsPrincipal 正确设置了 http 上下文原则对象,但使用该信息我确认允许用户访问应用程序,然后我创建自己的I原理实例。
鉴于此,我想在这里做几件事......我想使用 WindowsPrincipal 对象作为对用户进行身份验证的基础,但从那时起使用表单身份验证(即使用 cookie 来存储身份验证详细信息等)。我还需要我从 HTTP 上下文中检索到的原则的实例是我的 IPrinciple 类型。
我最好怎么做?就像我应该查看 global.asax 的 Session_Start 来执行身份验证逻辑,然后以某种方式让它存储我的自定义 IPrinciple(因此对于此后的任何请求,实例都是我的自定义原则)或者我最好使用 Application_AuthenticateRequest 做一些事情.
干杯安东尼