2011-11-26 93 views
2

我添加了对以下静态ROLES类的引用,以便将角色分配给JOIN网站的人员。当我按下JOIN ASP.Net控件上的按钮时,我测试了代码和应用程​​序。当然,我立即尝试调试以发现问题,但是我无法再访问SQL Express ASPNETDB.mdf - 错误如下所示。提前致谢。无法访问ASPNETDB.mdf

**The code-behind in the Join.aspx file:** 
    public partial class Join : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      MembershipUser loggedIn = Membership.GetUser(); 
      if (loggedIn == null) 
      { 
       return; 
      } 
      else 
      { 
       Session["userName"] = loggedIn.UserName; 
       Roles.AddUserToRole(loggedIn.ToString(), "MEMBER"); 

      } 
     } 

    } 

错误消息:无法打开用户默认数据库。登录失败。用户'SFP \ Susan'登录失败。

Web配置:

<?xml version="1.0"?> 

<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 

<configuration> 
    <appSettings> 
     <add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" /> 
    </appSettings> 
    <system.webServer> 
     <handlers> 
      <remove name="ChartImageHandler" /> 
      <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" 
       path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     </handlers> 
    </system.webServer> 
    <system.web> 
     <authorization> 
      <allow roles="ADMIN" /> 
      <allow roles="MEMBER" /> 
      <allow roles="GUEST" /> 
      <allow roles="RESTAURANT" /> 
     </authorization> 
     <roleManager enabled="true" /> 
     <authentication mode="Forms" /> 
     <httpHandlers> 
      <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
       validate="false" /> 
     </httpHandlers> 
     <pages> 
      <controls> 
       <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" 
        assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
      </controls> 
     </pages> 
     <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <connectionStrings> 
    <add name="FCGuideEntities" connectionString="metadata=res://*/FCGuide.csdl|res://*/FCGuide.ssdl|res://*/FCGuide.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;attachdbfilename=|DataDirectory|\FCGuide.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
</configuration> 

堆栈跟踪

无法打开用户默认数据库。登录失败。 用户'SFP \ Susan'登录失败。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

异常详细信息:System.Data.SqlClient.SqlException:无法打开用户默认数据库。登录失败。 用户'SFP \ Susan'登录失败。

源错误:

线48:restCity4.Text = featuredList4 [0] .CITY.CITY_NAME; 第49行: 第50行:MembershipUser loggedIn = Membership.GetUser(); 线51:如果(的loggedIn == NULL) 52行:{

源文件:H:\ FCGuide \ FCGuide \ default.aspx.cs行:50

堆栈跟踪:

[SqlException(0x80131904):无法打开用户默认数据库。登录失败。 用户登录失败'SFP \苏珊。] System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,布尔breakConnection)5064474 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()+234 System.Data。 SqlClient.TdsParser.Run(runBehavior runBehavior,SqlCommand的cmdHandler,SqlDataReader的数据流,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)2275 System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(布尔enlistOK)35 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin( ServerInfo serverInfo,String newPassword,Boolean ignoreSniOpenTimeout,TimeoutTimer超时,SqlConnection拥有对象)+183 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo,String newPassword布尔redirectedUserInstance,SqlConnection的owningObject,SqlConnectionString connectionOptions,TimeoutTimer超时)239 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection的owningObject,TimeoutTimer超时,SqlConnectionString connectionOptions,字符串NEWPASSWORD,布尔redirectedUserInstance)195 System.Data.SqlClient的。 SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity,SqlConnectionString connectionOptions,Object providerInfo,String newPassword,SqlConnection owningObject,Boolean redirectedUserInstance)+232 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options,Object poolGroupProviderInfo,DbConnectionPool pool,DbConnection owningConnection)+185 系统。Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(的DbConnection owningConnection,池类DBConnectionPool,DbConnectionOptions选项)+33 System.Data.ProviderBase.DbConnectionPool.CreateObject(的DbConnection owningObject)524 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(的DbConnection owningObject)+ 66 System.Data.ProviderBase.DbConnectionPool.GetConnection(的DbConnection owningObject)479 System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection owningConnection)108 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(的DbConnection outerConnection,DbConnectionFactory connectionFactory的) +126 System.Data.SqlClient.SqlConnection.Open()+125 System.Web.DataAccess.SqlConnectionHolder.Open(HttpContext上下文,Boolean revertImpe (String username,Boolean userIsOnline)+1169 System.Web.Security.Membership .GetUser(String username,Boolean userIsOnline)+63 System.Web.Security.Membership.GetUser()+19 H:\ FCGuide \ FCGuide \ default.aspx中的FCGuide._default.Page_Load(Object sender,EventArgs e)。 CS:50 错误帮助(IntPtr的FP,对象O,对象吨,EventArgs的)14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(对象发件人,EventArgs的)35 系统。 Web.UI.Control.OnLoad(EventArgs e)+91 System.Web.UI.Control.LoadRecursi VE()+74 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)2207

+0

您是否已通过在服务器资源管理器中添加数据库进行连接? – coder

+0

是的,我可以在服务器资源管理器中打开数据库并查看表格及其内容。 – Susan

+0

可能会解决您的错误http://social.msdn.microsoft.com/forums/en-US/sqlsecurity/thread/b32c862a-799c-43c4-a731-c4811078c8bd/ – coder

回答

0

检查用户的默认数据库可以接入,而且是在该数据库中登录的用户。你可以从SSMS查看你的默认数据库。

+0

我有2个SQL Express数据库...一个用于我的应用程序,另一个用于会员提供程序(ASPNETDB.mdf)。当我打开SSMS时,我可以看到aspnetdb.mdf数据库并查看表格。不知道'默认'数据库是什么意思,因为我有两个? – Susan

+0

转到'Security' - >'Logins' - >'Susan' - >'Properties' - >'Default database'。 – MagnatLU

+0

当我查看SSMS中的数据库保留时,唯一的权限是“连接SQL”,而设保人是“sa”....无论谁。 – Susan

0

我不可能打开它,因为我有SQL2008,数据库ASPNETDB.MDFSQL2008-R2竟是。得到它在R2打开,然后从那里开始。