我在为我的公司编写自定义 SSO 解决方案时遇到了问题。为了简单起见,我制作了一个自定义身份验证 httpmodule,它拦截所有请求以检查用户身份验证状态。如果未通过身份验证,用户将被重定向到我的自定义 sso 登录页面。
问题是,当用户未通过身份验证时,我想检查他是否可以访问请求的页面/资源...使用 Webforms,没问题,我在 web.config 中添加了一个授权块,并且我使用UrlAuthorizationModule.CheckUrlAccessForPrincipal与匿名用户。一切正常...
但是当我将我的模块应用到MVC (3)网站时,这不再起作用(原因很明显,比如在使用路由时可以从不同的 url 访问相同的控制器和/或操作,并且因为授权是通过控制器属性)。
我怎样才能做到这一点?我一直在搜索一整天,没有找到任何关于它的东西:/