部署到服务器时CSLA权限失败

时间:2013-03-14 17:17:53

标签: asp.net-mvc-4 csla

我有一个ASP.NET MVC 4应用程序,它使用CSLA.NET作为我们业务逻辑的一部分。读取/写入的权限由域帐户通过AD处理,与应用程序池标识和.NET模拟用户的帐户相同。在我的本地计算机上进行测试时,验证运行完美。将应用程序部署到我们的某个测试环境(dev或qa)后,我会收到似乎指向权限的异常。我已经验证了程序集使用的用户名确实是正确的用户,但由于没有相应的权限,因此无法设置任何字段的值。

以前有人经历过这样的事吗?

编辑:

Link to discussion on lhotka.net forums

1 个答案:

答案 0 :(得分:1)

Web服务器是无状态的,因此它们通常不会记住页面或服务请求之间的任何内容。这包括用户的身份和角色。

如果您使用的是ASP.NET表单安全性(或类似的),则将使用.NET authn cookie令牌在服务器上自动重新创建用户名,但这只是用户名。

您负责为每个回发/请求在服务器上重新创建完整的主体/身份对象。

最简单的方法是在global.asax文件中,通常在authenticate请求事件中。 CSLA下载中的示例显示了如何执行此操作,并在“使用CSLA 4”电子书系列中进行了讨论。

任何好的ASP.NET书籍都会讨论恢复主体,因为这不像Web开发问题那样真正是CSLA问题。