会员GetAllUsers()系统.数据SqlClient.SqlException:用户没有执行此操作的权限



我使用Visual web Developer 2010学习版创建了一个小型web应用程序。在我部署了我的网站并转到第一个页面后,即为应用程序提供用户列表的登录页面,我得到了以下错误:

异常详细信息:系统。数据SqlClient。SqlException:用户没有执行此操作的权限。

来源错误:

Line 22:         public ActionResult LogOn()
Line 23:         {
Line 24:             var users = Membership.GetAllUsers().Cast<MembershipUser>().ToList();
Line 25:             SelectList usernames = new SelectList(users);
Line 26:             ViewBag.UserNames = usernames;

这是我的connectionStrings设置:

<connectionStrings>
   <add name="ApplicationServices"
     connectionString="data source=.SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
     providerName="System.Data.SqlClient" />
</connectionStrings>

为什么会出现这种错误?非常感谢您的帮助。我目前正在Windows2008Server上开发它,并在同一台机器上测试它的部署。

我发现连接字符串有问题。它是为用户实例化而设置的,根据这篇微软文章:

运行在IIS 7.5上并依赖SQL Server的Web应用程序Express用户实例化将无法使用默认IIS 7.5运行Windows 7客户端和Windows服务器上的安全配置2008 R2

文章还建议避免在生产中使用用户实例。我发现了这个帖子,它帮助我正常地主持数据库。\SQLExpress实例。我将连接字符串更改为:

<connectionStrings>
    <add name="ApplicationServices"
     connectionString="Database="app_users";Data Source=.SQLEXPRESS;Initial Catalog=app_users;Integrated Security=SSPI;"
     providerName="System.Data.SqlClient"/>
</connectionStrings>

在更改上述连接字符串之前,我将SQLServerExpress中的aspnetdb.mdf文件附加到我创建的名为"app_users"的新数据库中。

我不再获得权限错误。

相关内容

  • 没有找到相关文章

最新更新