【发布时间】:2011-12-19 22:25:33
【问题描述】:
我基本上做的是this。但是,每当我使用内置的 AuthorizeAttribute 时,MVC 框架(我猜)从不查看我的主体来确定用户是否具有正确的角色。它一直试图在 app_data 目录中创建一个新的 MDF 文件,并且因为它没有特权,所以它爆炸了。
这是预期的行为,我应该派生自己的 AuthorizeAttribute 并自己检查主体吗?
要指出的另一个奇怪行为是,我在同一个域上有两个站点,我正在为此进行单点登录。在任一站点上,我都使用相同的类库在 AuthenticateRequest 上重新创建自定义主体,并且在调试时看到主体在每个站点上都正确设置。但是,站点 1(对用户进行身份验证的站点)使用内置的 AuthorizeAttribute,并且运行良好,但是站点 2 会在调用任何具有 AuthorizeAttribute 的操作时尝试创建 MDF 文件。
【问题讨论】:
-
好的,我想我找到了更多信息。我的自定义主体对象正在我的 Global.asax 文件中的 PostAuthenticateRequest 方法中更改为 RolePrincipal。如果我将自定义主体集逻辑移动到 PostAuthenticateRequest 方法中。一切正常,但我不必为其他站点执行此操作,而且我找不到他们的 web.config 文件之间的区别。所以我真正想做的就是弄清楚是什么将我的主体更改为 RolePrincipal 对象,然后禁用它。
标签: asp.net-mvc-3 forms-authentication