【问题标题】:ASP.NET MVC RolesASP.NET MVC 角色
【发布时间】:2015-01-12 00:47:54
【问题描述】:

我导入了一个 MVC 4 项目,该项目使用角色来控制访问不同页面和块的权限。我正在使用带有 Update 4 的 Visual Studio Express 2013 for Web。

但是,我在运行项目时收到以下错误(我尚未修改任何内容)。它使用语句@if (Roles.IsUserInRole("[RoleName]") 来显示页面的某些部分。

System.Data.SqlClient.SqlException : {"Invalid objet name 'webpages_UsersInRoles'."}

我相信这可能是因为数据库是空的(因此没有定义角色)。但是,我尝试手动添加角色并使用服务器资源管理器将它们分配给用户

我可以使用 MVC 模板页面登录和注册,但是当我打开任何包含该语句的页面时,我收到错误并且应用程序崩溃。

谢谢

【问题讨论】:

  • 您是否尝试在函数“IsUserInRole”处设置断点并查看它试图与“webpages_UsersInRoles”一起使用的对象是什么?如果是表/存储过程,则需要在数据库中创建对象

标签: c# asp.net asp.net-mvc asp.net-mvc-4


【解决方案1】:

我发现了一些关于 MVC 4 的简单成员资格的附加文档。MVC 确实需要一些表来执行此成员资格,其中之一是 pages_UsersInRoles。

您是否尝试过注册帐户?看来应该调用initialize方法在数据库中创建表。

查看此链接了解更多信息:

http://www.codeproject.com/Articles/689801/Understanding-and-Using-Simple-Membership-Provider

【讨论】:

    【解决方案2】:

    如果此应用打算使用 windows 身份验证,并且您在 IIS express 下运行,则可能只需将 windows 身份验证标志设置为“true”即可。

    【讨论】:

    • 它没有使用 Windows 身份验证。
    【解决方案3】:

    Invalid object name 错误与sql server 相关,table,store procedure 缺失。 如果表存在,只需检查数据库 [database].[schema].[tablename]

    【讨论】:

      猜你喜欢
      • 2015-08-25
      • 2012-02-19
      • 2010-10-21
      • 2010-12-27
      • 2012-08-24
      • 2013-12-26
      • 1970-01-01
      • 2021-09-04
      • 2018-11-11
      相关资源
      最近更新 更多