質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

9020閲覧

asp.net フォーム認証後のリダイレクト先について

muramoto_jp

総合スコア17

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2018/02/23 10:14

編集2018/02/25 05:06

いまさら、asp.net のフォーム認証 だとは思いますが、asp.net を基礎から覚えたくて、勉強中です。

【開発環境】
OS:WIndows 10
Visual Studio 2015 Community
Web Forms

【実行環境】
Azure App Service
.NET Framework v4.7

フォーム認証で、「MOTOフォルダ内のページにアクセスするときは、認証を要求する。」という設定なのですが、[web.config]は下記のような設定にしています。

web.config

1 <authentication mode="Forms"> 2 <forms name="loginCookie" loginUrl="sign-in.aspx" protection="All" timeout="30" path="/" > 3 </forms> 4 5 </authentication> 6 7 <authorization> 8 <!-- すべて許可 --> 9 <allow users="*" /> 10 </authorization> 11 12 <location path="MOTO"> 13 <system.web> 14 <authorization> 15 <deny users="?" /> 16 </authorization> 17 </system.web> 18 </location>

sign-in.aspxで、認証後に要求元へのリダイレクトは、下記のようにしていますが、要求元がない状態場合の、sign-in.aspxで認証後のリダイレクト先は、どのように設定するのでしょうか?

sign

1 If sLoginID > 0 And Me.txtAccount.Text = sLoginName And Me.txtPassword.Text = sLoginPW Then 2 Session("LoginID") = sLoginID 3 4 '要求元へリダイレクト (要求元がないときは、Default.aspx) 5 FormsAuthentication.RedirectFromLoginPage(Me.txtAccount.Text, True) 6 Else 7 login_message.ForeColor = Drawing.Color.Red 8 login_message.Text = "認証に失敗しました。" 9 'MsgBox("認証に失敗しました。") 10 End If

【質問】
Web Formsアプリの Form認証を独自で判断した時の質問です。

ページ遷移は次のようになります。
フォルダ MOTO 内のPage1を表示しようとする。
サインインしていないので、sign-in.aspxにリダイレクトします。
sign-in.aspx ページで、認証するとサインイン時のページPage1を表示します。

ところが、sign-in.aspx ページを直接表示した場合は、認証後のリダイレクトするページの値がないので、Defalt.aspxページにリダイレクトします。

このように、認証後のリダイレクトするページの値がない場合の、ページ遷移先を指定することができるのでしょうか?

また、認証後のリダイレクトするページの値が、あるかないか判定を行うことができるのでしょうか?

初歩的な質問で申し訳ございません。
どなたか、ご教主お願いします。

いま、私が取り組んでいるプログラムのご紹介

Azure SQL と Access を使って、データを共有型して、自由にデータクラウド型のデータベースを作れるようなアプリを作成しています。

クラウドデータ共有データベース Ganso

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/02/23 10:56

何を作っているか(Web Forms? MVC? Web Pages? Web API? その他?)とあなたの開発環境(OS, IIS, .NET, Visual Studio のバージョンなど)と、認証方式(フォーム認証と言っても色々あります)を書いてください。
退会済みユーザー

退会済みユーザー

2018/02/23 11:22

加えて、質問者さんが期待する動きと、実際の動きが期待とどう異なるかをできるだけ具体的に書いてください。
muramoto_jp

2018/02/23 11:23 編集

ありがとうございます。開発環境、実行環境を追記しました。Web Formsと Web Pages の違いがわからないのですが、VS の Webサイトの作成で作っている .aspxファイルです。初心者なので、すみません。m(__)m
退会済みユーザー

退会済みユーザー

2018/02/23 11:29

> 開発環境、実行環境を追記しました。←見当たりませんが、どこに書きました?
退会済みユーザー

退会済みユーザー

2018/02/23 11:30

> Web Formsと Web Pages の違いがわからない ←ググって調べるなどしましたか?
muramoto_jp

2018/02/24 03:16

ありがとうございます。追記・変更理由を記入していなくて、更新されていませんでした。再度更新しました。
muramoto_jp

2018/02/24 03:18

Web Forms / Web Pages / MVC となんとなく理解しました。私が今やっているのは、Web Forms です。
退会済みユーザー

退会済みユーザー

2018/02/24 04:24 編集

Visual Studio 2015 Community のテンプレートを使って Web Forms アプリのプロジェクトを自動生成する場合、「個別のユーザーアカウント」を選ぶと ASP.NET Identity ベースのフォーム認証になるはずです。しかし、アップされたコードを見ると、従前の FormsAutheticationModule を利用した Forms 認証を独自実装したように見えます。それでいいのですか? どうしたいのでしょう? 独自実装ですと、それは質問者さん「独自」でしょうから、第三者には分からない/回答できないのですが。
muramoto_jp

2018/02/25 05:08

ありがとうございます。説明不足でしたので、質問内容をまとめました。
guest

回答1

0

ベストアンサー

Web Formsアプリの Form認証を独自で判断した時の質問です。

そういうことは、最初に質門した時の一行目に書いて欲しかったです。次回質問する機会がありましたら、その時はよろしくご配慮願います。お互い時間の無駄が省けます。

コメントに書いた通り、独自実装ですと、それは質問者さん「独自」でしょうから、第三者には分からない/回答できないです。(どこが標準と違うかを聞いて答えるのはできないことではないかもしれませんが、質問者さんの独自実装に興味がない第三者には負担が大きすぎますので、そういうことは期待されない方が良いと思います)

独自に FormsAuthenticationModule を利用した Forms 認証を実装したいなら、まずは、Visual Studio のテンプレートを使っての標準の Forms 認証の実装を把握することをお勧めします。

独自実装するのは、それからの話だと思います。

と言っても、Visual Studio 2015 Community ではそれはできないので、以前のバージョンの Visual Studio を使わざるを得ませんが・・・

Visual Studio 2010 なら間違いなくテンプレートを使って実装できます。そこまでやる気はないということでしたら、独自実装はちょっと難しいかもしれません。Visual Studio 2015 で実装できる ASP.NET Identity ベースにしてはいかがですか?

・・・と言うばかりでは何ですので、VS2010 のテンプレートを使って Forms 認証を実装した場合という前提で回答しますと、

認証後のリダイレクトするページの値がない場合の、ページ遷移先を指定することができるのでしょうか?

それは匿名アクセスが許可されたページからログインする場合と理解していますが、であれば、web.config で defaultUrl に設定遷移先を設定すれば可能です。詳しくは以下の記事を見てください。

authentication の forms 要素 (ASP.NET 設定スキーマ)
https://msdn.microsoft.com/ja-jp/library/1d3t3c61.aspx

認証後のリダイレクトするページの値が、あるかないか判定を行うことができるのでしょうか?

匿名アクセスが許可されてないページにアクセスした場合、上で紹介した「forms 要素」の loginUrl に設定されるログインページにリダイレクトされ、ユーザーにログインを促すのが標準です。

ログインページが要求される際 ReturnUrl というキー名のクエリ文字列が付与されますが、それに最初にアクセスしたページの URL が設定されています。それの有無で分かるはずです。

ログイン後は、そのクエリ文字列があればそれに指定されたページに、なければ defaultUrl に設定されたページにリダイレクトされます。

投稿2018/02/25 07:54

編集2018/02/25 07:56
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

muramoto_jp

2018/02/26 00:09 編集

ありがとうございます。無駄な時間を取らせて申し訳ありませんでした。今後は、質問の要点をしっかりまとめてから、投稿するようにいたします。おかげさまで、Web開発の環境設定の重要さやフレームワークの技術遷移が理解できました。たいへん勉強になりました。感謝しております。m(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問