@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ログイン後リダイレクトさせたくない

1
投稿者投稿内容
貴水
会議室デビュー日: 2008/11/18
投稿数: 8
投稿日時: 2008-12-17 20:54
開発OS:Windows Vista Business
ASP.NET2.0
SQL Server 2008
で開発しております。

一般的なForm認証、つまりログインコントロールを配置してログイン後にDestinationPageUrlで指定したページでリダイレクトする、という動きはできております。

今回自分がやりたいのは、ログインコントロールでLoggingIng→Atuhenticate→LoggedInイベント発生後にどのページにもリダイレクトせずに、ログインコントロールが配置されているページ(Login.aspxとします)のまま留まりたいのです。
もちろんDestinationPageUrlに、Login.aspxを指定すれば、そのログインコントロールを配置した画面は表示されます。
しかしユーザー名やパスワード、ログインコントロール以外のコントロールの入力値などはクリアされてしまいます。
DestinationPageUrlを空にしても、DestinationPageUrlにLogin.aspxを指定した場合と同じ動きをしてしまいました。

ログインコントロールを使用して、ログイン後に画面遷移を行わないというのは無理なのでしょうか。
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-12-17 23:02
何をしたいのかよくわからないのですが、
一般的にSUBMITして画面遷移(自身のリロード含めて)
したくないなら、見えない画面にPOSTするなど
の方法を取ります。

よこけん
大ベテラン
会議室デビュー日: 2006/01/31
投稿数: 216
投稿日時: 2008-12-17 23:02
FormsAuthentication クラスの SetAuthCookie メソッドを使って認証するようにすれば勝手にリダイレクトしません。

http://msdn.microsoft.com/ja-jp/library/system.web.security.formsauthentication.setauthcookie.aspx

_________________
C#と諸々
貴水
会議室デビュー日: 2008/11/18
投稿数: 8
投稿日時: 2008-12-18 00:04
ありがとうございます。
SetAuthCookieをキーワードに調べていくうちに、Ajaxを使って非同期にASP.NETの認証機能を使う方法が見つかりました。
これでリダイレクトせずにすみそうです。

確かに変わった画面遷移ですよね。
普通はログインコントロールで認証してユーザページにいざなうんでしょうが、
今回はログインコントロールは使用するものの、サーバー側でログインされたことだけわかればよく、端末側はそれを感知せず、続けて別のユーザでログイン処理をしたかったのです(ログインエラーぐらいは表示しますが…)。
1

スキルアップ/キャリアアップ(JOB@IT)