私の Web サイトは、要求の合間に常にログオン ページに戻るように強制しています (認証の問題)。
私のローカル Web サイトは問題なく動作し、まったく同じコードです。認証問題はありません...
私はウェブを精査し、この問題について一日中髪を引き裂き、提案されているようにさまざまなことを試しています.
誰かが私に何が起こっているのか、どうすればそれを修正できるのか説明してもらえますか?
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
Session["Email"] = model.Email;
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", YeagerTechResources.Resources.AcctUserNamePswdInCorrect);
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
以下は、本番サイトにログオンした直後に使用できる Cookie の次の画像です。Cookie がリストされていないことに注意してください。
クッキー情報 - http://yeagertech.com/
さて、私の開発サイトで同じコードを実行している同じ情報を見ると、次のようになります。これは私を夢中にさせており、これに丸一日無駄にしています。助けてくれる人に感謝します!
クッキー情報 - http://localhost:4514/
名前
プロキシー
価値
http://localhost:62613/proxy/0/
ドメイン
ローカルホスト
道
/
期限切れ
2012 年 2 月 12 日午後 8 時 21 分 16 秒
いくつかの要求の後、ログオン ページに戻ることに注意してください --- 本番サイトのみで、私のローカル サイトではありません。
実稼働サイトの Cookie は、ログオン ページに戻るまでの十分な有効期間がないようです。
私は基本的に、少なくともユーザーセッションの間は Cookie を保持したいと考えています。
この問題を解決するにはどうすればよいですか?
再度、感謝します....
この Web サイトに関連付けられている IIS で設定を構成する必要がありましたが、次のエラーが発生しました。
「ASP.NET バージョン 2.0 セッション状態が SQL サーバーにインストールされていないため、SQL サーバーを使用できません。ASP.NET セッション状態 SQL サーバー バージョン 2.0 以降をインストールしてください」
このエラーを受け取ったとき、SQL Server でセッション状態を有効にする必要があることがわかったので、InstallSqlState.SQL ファイル (ローカル PC の Microsoft.Net バージョン フォルダーにあります) を実行してみました。
スクリプトを実行しようとした後、SystemDatabases フォルダー内のホストされたデータベース サーバーに "msdb" データベースがないため、失敗します (以下のエラーが表示されます)。
「データベース 'master' で CREATE DATABASE 権限が拒否されました。ジョブが存在しない場合、msdb.dbo.sp_delete_job からのエラーが予想されます。メッセージ 229、レベル 14、状態 5、プロシージャ sp_delete_job、行 1 で、EXECUTE 権限が拒否されました。オブジェクト 'sp_delete_job'、データベース 'msdb'、スキーマ 'dbo'。メッセージ 911、レベル 16、状態 1、行 10 データベース 'ASPState' は存在しません。名前が正しく入力されていることを確認してください。
そのため、ホストされているデータベース (master と tempdb しかない) に msdb データベースがない限り、SQL サーバーでセッション状態を設定することはできません。
ここからの進め方を教えていただきたいです。
ところで、有効にしたとしても、これで問題が解決する可能性はほとんどありません。私の状況は、最初に概説した 3 つの箇条書きのいずれにも当てはまりません。
レコードがほとんどない小さなデータベースです。レコードを追加する前に、自分の Web サイトでテストして、正常に動作することを確認しているだけです。タイムラプスもありません。
数ページに問題なくアクセスした後、突然、ログオン ページに戻ります...
私のローカル マシンが正常に動作している場合、それは間違いなく私が設定する必要がある何かに関係しています。
助けていただければ幸いです....