ASP.NET角色在部署的ASP.NET MVC应用程序中不起作用

时间:2011-09-27 21:48:32

标签: c# asp.net asp.net-mvc authentication asp.net-membership

我已经发布并部署了一个使用ASP.NET身份验证的角色功能的ASP.NET MVC应用程序。在我的开发机器上,Roles工作正常 - 但在我的服务器上,我已经转移了构建,整个数据库(架构,数据和用户),并具有完全权限,角色不起作用

以下是我的代码崩溃的行:

var exists = Roles.RoleExists("Administrator");

由于某些原因,此类角色查询无效,但System.Web.Security.Roles.Enabled返回true并且System.Web.Security.Roles.Provider设置正确。

是什么给出了?

2 个答案:

答案 0 :(得分:2)

如果我不得不猜测,在您部署到的服务器上的IIS上验证设置不正确。最有可能的是,您使用内置的开发人员服务器进行开发,现在已将其部署到IIS中具有默认设置的服务器。

答案 1 :(得分:1)

我找到了解决方案,结果与ASP.NET无关。我在SQL日志中发现的问题是我的SQL用户没有数据库的EXECUTE权限。所需要的只是一个简单的查询:

CREATE ROLE db_executor;
GRANT EXECUTE TO db_executor;

感谢大家的帮助。