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

问题描述:

我有一个ASP.NET MVC 4应用程序正在使用CSLA.NET作为我们业务逻辑的一部分。读/写权限是通过域帐户AD处理的,与Application Pool Identity和.NET Impersonation用户具有相同的帐户。在我的本地机器上测试时,验证运行完美。一旦将应用程序部署到我们的测试环境之一(dev或qa),我会收到似乎指向权限的异常。我已验证程序集使用的用户名确实是正确的用户,但由于没有适当的权限而无法设置任何字段的值。CSLA权限在部署到服务器时失败

任何人都曾经历过类似的事情吗?

编辑:

Link to discussion on lhotka.net forums

Web服务器是无状态的,所以他们一般不记得页面或服务请求之间的任何东西。这包括用户的身份和角色。

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

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

最简单的方法是在global.asax文件中,通常在验证请求事件中。 CSLA下载中有样本显示如何做到这一点,我在“使用CSLA 4”电子书系列中讨论它。

此外,任何一本好的ASP.NET书籍都将讨论恢复委托人的问题,因为这不像Web开发问题那样是一个真正的CSLA问题。