运行aspnet_regsql后幕后会发生什么?

时间:2009-06-09 22:50:06

标签: sql asp.net-membership

我没有得到asp.net论坛的任何回复,所以我想我会在这里试试。

我遇到了一个客户问题,他们无法登录我们正在托管的应用程序。它们在最初安装我们的应用程序后的第一天工作正常,但随后在第二天(2009年5月29日)进行了身份验证。然后他们说它在下周一开始工作,但只持续了几个小时。没有配置更改或他们知道的数据库更改。

我们能够通过使用以下参数运行aspnet_regsql命令来解决此问题。我们已经验证了所有“aspnet_”表和存储过程都在数据库中。我的问题是,与我们的应用程序和身份验证失败的数据库断开连接,但是在运行此脚本后修复了吗?该命令没有覆盖任何“aspnet_”表,因为所有现有用户仍在数据库中,并且他们能够再次使用相同的现有凭据登录。

aspnet_regsql -E -S <SERVERNAME> -d <DATABASENAME> -A all

我们的应用程序的一些背景。这是一个.NET 3.5 SP1 ASP.NET应用程序,使用成员资格提供程序进行身份验证。我在我们的数据库中安装了成员资格功能(我现在后悔这样做)。该应用程序使用SQL Server登录ADO.NET连接和成员身份连接。此当前设置将登录权限设置为此数据库的db_owner。

以下条目已进入Windows事件日志。

 Event Type: Information
 Event Source: ASP.NET 2.0.50727.0
 Event Category: Web Event 
 Event ID: 1315
 Date:  5/29/2009
 Time:  10:52:04 AM
 User:  N/A
 Computer: * * * * * *
 Description:
 Event code: 4005 
 Event message: Forms authentication failed for the request. Reason:
 The ticket supplied has expired. 
 Event time: 5/29/2009 10:52:04 AM 
 Event time (UTC): 5/29/2009 2:52:04 PM 
 Event ID: 5ca57075c5464bdfbee4dbaa1365f8d9 
 Event sequence: 2 
 Event occurrence: 1 
 Event detail code: 50202 

 Application information: 
     Application domain:
 /LM/W3SVC/1/Root/5500Client-1-128880823233521436 
     Trust level: Full 
     Application Virtual Path: /5500Client 
     Application Path: D:\www\5500Client\ 
     Machine name: * * * * * *

1 个答案:

答案 0 :(得分:0)

使用内置Windows凭据连接到SQL Server似乎存在问题。您的客户有机会运行此操作,例如sa帐户或其他具有足够权限来创建数据库和表的SQL Server帐户?

aspnet_regsql -S <SERVERNAME> -d <DATABASENAME> -A all -U (login id) -P (password)

马克