2009-06-09 18 views
0

asp.netフォーラムからの回答がありませんでしたので、ここで試してみると思いました。aspnet_regsqlを実行しているときに何が起こるのですか?

私は、彼らがホストしているアプリケーションにログインする際に問題があったクライアントに問題がありました。最初の日にアプリがインストールされた後はうまくいきましたが、翌日に認証が壊れました(5/29/2009)。その後、彼らは次の月曜日に作業を開始したが、ほんの数時間しかかかりませんでした。彼らが知っていた構成変更やデータベースの変更はありませんでした。

以下のパラメータを指定してaspnet_regsqlコマンドを実行することで問題を解決できました。すべての "aspnet_"テーブルとストアドプロシージャがデータベースに存在することを確認しました。私の質問は、私たちのアプリケーションと認証が失敗したデータベースとの接続が解除されたが、このスクリプトを実行した後に修正された場所はどこですか?既存のユーザーはすべてデータベースに残っており、同じ既存の資格情報でもう一度ログインできるため、コマンドは "aspnet_"テーブルを上書きしませんでした。

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

私たちのアプリで少しの背景。これは、.NET 3.5 SP1 ASP.NETアプリケーションで、認証にメンバーシッププロバイダを使用しています。私はデータベースにメンバーシップ機能をインストールしました(これは後悔しています)。アプリケーションは、ADO.NET接続とメンバシップ接続の両方にSQL Serverログインを使用します。この現在のセットアップでは、このデータベースの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: * * * * * * 

答えて

0

SQL Serverへの接続に組み込みのWindows資格情報を使用すると、問題が発生しているようです。あなたのクライアントがこれをたとえばsaアカウントまたはデータベースとテーブルを作成するための十分な権限を持つ他のSQL Serverアカウント

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

マルク・

+0

ああ、そう何を言っていると、テーブルが異なるスキーマ、Windowsユーザーアカウントの代わりに、DBOアカウントで作成したばかりしていることです。 –

+0

いいえ、多分、あなたの顧客が使用しているWindowsユーザーには、SQL Serverで必要な権利がありません。明示的なSQLアカウントを使用すると、このような場合に役立ちます。 –

関連する問題