asp.net 2.0 membership数据库 虚拟主机 问题(新开帖)!!!

yangbo0801 2008-05-04 07:54:29
我做一个网站用到asp.net 2.0 的安全数据库(membership),可是在本地测试的时候,我本地的SQL SERVER 2000的关于membership的数据库表的所有者是dbo,但是传到虚拟主机上是没有dbo权限的,都是给个账户,只能操作你的那个库。
我试着把本地的数据库生成sql脚本,然后打开编辑,把所有语句中带dbo.和[dbo].全部替换成空白了,这样其他我自己建的表都有权限使用了,但是membership相关的表还是说需要dbo权限,我该怎么办?
如果我需要用到membership相关数据库进行开发,但最终还是放到虚拟主机上运行?一开始应该怎么做?
...全文
371 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Novelty 2008-09-08
  • 打赏
  • 举报
回复
由于asp.net membership默认使用dbo用户访问数据哭,所以在将memebership部署到虚拟主机上通常会出项数据库无法访问,造成memebership无法正常使用,下面就如何解决这一问题分享一些个人的经验,避免大家再走弯路:

1、在虚拟主机上建立memebership数据库时(基本虚拟主机sql server数据库都不会提供dbo用户),将membership数据库的sql脚本中所有[dbo].和dbo.去除,这样在建立 membership数据库时,所有对象将使用当前连接用户创建。

2、到microsoft下载membership源码,地址:http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d- b7e3-33bacfcc8e98/ProviderToolkitSamples.msi,默认安装(推荐)后可以在C:\Program Files\ASP.NET Provider Toolkit SQL Samples下找到源项目,将该项目添加到你的解决方案中,并且在需要使用的项目中引用该项目。

3、重写membership,将memebership项目中所有源代码中的dbo.去除,重新生成membership项目,这时在你的项目的bin目录下将生成一个ProviderToolkitSampleProviders.dll文件。

4、位置web.config文件中的membership节如下:
<membership>
<providers>
<clear/>
<add
connectionStringName="MyMemeberShipConnectionString"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="4"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
name="AspNetSqlMembershipProvider"
type="Microsoft.Samples.SqlMembershipProvider"/>
</providers>
</membership>

如果使用了webpart,web.config文件中webpart节配置如下:
<webParts>
<personalization>
<providers>
<remove name="AspNetSqlPersonalizationProvider"/>
<add
connectionStringName="WebScheduleConnectionString"
name="AspNetSqlPersonalizationProvider"
type="Microsoft.Samples.SqlPersonalizationProvider"/>
</providers>
</personalization>
</webParts>

大功告成,希望microsoft在下一个membership版本中可以改进一下,不要再强迫大家使用dbo用户了。
eeeeeeeeeeeee 2008-09-08
  • 打赏
  • 举报
回复
http://www.diybl.com/course/4_webprogram/asp.net/netjs/200863/121171.html

看这里
yangbo0801 2008-05-16
  • 打赏
  • 举报
回复
zjcxc怎么还不来啊??
蒋晟 2008-05-07
  • 打赏
  • 举报
回复
自己写一个membership provider,或者把aspnetdb的表拷过来之后改连接字符串
SOMMERS 2008-05-07
  • 打赏
  • 举报
回复
我顶啊,我也遇到同样的问题啊
utpcb 2008-05-07
  • 打赏
  • 举报
回复
新建立个管理员的用户,把这个用户授权给这个库.
yangbo0801 2008-05-05
  • 打赏
  • 举报
回复
我的问题是最终要放到虚拟主机上运行,这种东西的数据库是自己的账户只能使用你自己的那个库,比如给你的数据库用户和密码分别是XXX和123,那你的所有的表,存储过程的所有者就是XXX,我在本地开发的数据库的所有的表和存储过程的所有者是dbo,记得以前试过将本地的库生成脚本后把所有[dbo].和dbo.都替换成空白后,再在服务器的数据库上运行脚本,那样所有数据库表和过程的所有者都是XXX了(即自己的账户)。
但是这次即使把membership相关表的所有者都改成XXX(自己账户),程序还是报错说找不到dbo.某过程,这个过程就是membership生成的
dawugui 2008-05-04
  • 打赏
  • 举报
回复
新建立个管理员的用户,把这个用户授权给这个库.
yangbo0801 2008-05-04
  • 打赏
  • 举报
回复
我不知道大家都是怎么做数据库的, 反正我都是用默认的dbo帐户建表,membership相关表也都是dbo帐户,不会新建个只有操作一个库帐户, 然后用这个帐户做开发吧??
-狙击手- 2008-05-04
  • 打赏
  • 举报
回复
你要对你增加的用户进行权限操作,让它对表有权限吧,

和虚拟主表无关吧

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧