いつも利用しているサイトのログインページがリニューアルされて自動ログインできなくなりました。

以前はログインページのURLにIDとかPassとかを<form>で送ればログイン出来ていたので
ローカルにhtmlファイルを作成してそのソースにIDとかPassを記述しておいてリンクボタン一つで簡単にログインできるようにしておりました。

ところが新しいログインページはASP.NETで作成されているようで単純に<form>でいくつかの値を送れば良いと言うのではなくなっていまいました。

最近VS2008/C#で少しASP.NETのページを作成したりしていてボタンイベントとかポストバックとか何となく理解してはいますが、その程度の知識&理解レベルでは解決できそうにありません。

こう言った場合はもう自動ログインする方法は無いのでしょうか。

御助言をお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

具体的にどのページなのかHTMLも見ていないので完全推測します。



form内のエレメントの名前が変わったりしていれば当然ログインできなくなります。ASP.NETはコントロールのidやnameを勝手に変えるので変わっていないか確かめてみてください。

あとは指定されたプロセスをたどっていないとはじくように設計変更されたかもしれませんね。
私の経験から言うと、ログインページ以外から来たユーザーをはじくことはそれほど難しくはありません。(セッションがない、Refererが不正などなどではじけます。偽装もできますが…)

自動ログインできるかできないか、という問いであれば方法はあります。
正しいログインプロセスを自動化するアプリケーションを用意すればよいわけで、そのようなツールがあるかどうかは分かりませんが、C#が出来るのであればC#のプロジェクトでフォームにブラウザコントロール貼り付けて自動ログインする簡易ブラウザを作ってしまう・・・とか。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ソースを見ましたところsessionではありませんでしたが、viewstateが関係してそうでした。
もう少し考えてみます。

お礼日時:2009/05/18 16:49

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVine Linux 一般ユーザがログインできない

apt-get update&upgradeしたあと、Vine Linux のログイン画面で、一般ユーザがログインできません。(rootはできます)

telnet などではログインできます。

なにかアドバイスを・・・。

(13文字以上のパスワードのユーザがログインできなくなるというバグが以前あったようですが、パスワードは10文字以下です・・)

Aベストアンサー

その後、どうですか?

ランレベル3に変更したら、一般ユーザでローカルログインができますか?

もしそれでログインできるなら、あきらかにランレベル5で起動する
ウインドウマネージャ(XDMまたはWDM)に原因があると思います。

ウインドウマネージャ関連の設定がおかしくなっていないか?
または、ウインドウマネージャのパッケージを一度消して、再インストールしてみる、
なども手です。

QASP.NETでログイン認証をしないとページを見れないようにしたい

ASP.NETでソフト開発を行っております

自分が実装したい事ですが、

ログインページが表示され
そこで認証をしないと
他のページを見る事ができないようにしたいのです

お勧めの方法ありましたら
教えて下さい

Aベストアンサー

このあたりを入り口とするといいかも
http://www.atmarkit.co.jp/fdotnet/dotnettips/135aspauth/aspauth.html

Q ↓のサイトにログインできないんです。

 ↓のサイトにログインできないんです。
http://radiotuna.com/
 アカウントはちゃんと取ったつもり(英語なので確実とはいえません)ですが、ログインできません。 アカウントは取ったばかりだとログインできないこともあるようですが、取ってから数日たってます。 他の人はログインできますか?

Aベストアンサー

ブラウザが古いからアップデートしてから来なさい
だって
曲の選択画面までは行けました

私のはIE6です
IE8はOSが原因でインスートルできないのです

QASPとASP.NETとASP.NET2.0の違い

Web開発初心者です。

帳票をPDF表示するWebアプリケーションを開発することになり、
言語はASPを使用することになりました。

そこで
ASP
ASP.NET
ASP.NET2.0
の違いをご存知の方がいらっしゃいましたら教えていただけますでしょうか。
それぞれIIS以外に必要な実行環境、ツール等も教えていただけると助かります。

不明瞭な箇所がありましたら説明させていただきます。
すいませんがよろしくお願いします。

Aベストアンサー

ASP用のツールは、多分、無いですね・・・
#メモ帳でASPファイルを作成してサーバにコピーとか。

ASP.NET用の開発ツールは、Microsft社製の「VisualStudio」シリーズがあり、
ASP.NET(1.1)は、「VislaStudio 2003」で、
ASP.NET2.0は、「VislaStudio 2005」で開発できます。


「Visual Web Developer 2005 Express Edition 」は、
「Visual Studio 2005」のEditionの1つで、有料のパッケージ版(入門者つき)と無料のダウンロード版があります。
機能的には同じで、無料版だからといって、商用利用の制限等はありません。

(http://www.microsoft.com/japan/msdn/vstudio/express/faq/default.aspx)

「Express Edition を商用目的で使用することはできますか。」

また、「ASP.NET1.1用」の無料の開発ツールとして、3rdパーティ製ですが、
「Web Matrix 」と言うのがあります。

「ASP.NET Web Matrix Project 日本語版」
(http://www.microsoft.com/japan/msdn/asp.net/webmatrix/)

ASP用のツールは、多分、無いですね・・・
#メモ帳でASPファイルを作成してサーバにコピーとか。

ASP.NET用の開発ツールは、Microsft社製の「VisualStudio」シリーズがあり、
ASP.NET(1.1)は、「VislaStudio 2003」で、
ASP.NET2.0は、「VislaStudio 2005」で開発できます。


「Visual Web Developer 2005 Express Edition 」は、
「Visual Studio 2005」のEditionの1つで、有料のパッケージ版(入門者つき)と無料のダウンロード版があります。
機能的には同じで、無料版だからといって、商用利用...続きを読む

Qログインしたら他からログインできないようにしたい

PHP+MySQLで会員サイトを作っています。

1. 誰か一人がログインしていたら、そのログイン会員と同じIDとパスワードでログインしようとするとログインできないようにするか、元のログインしていた人が強制的にログアウトするようにしたい。

2. 一人のユーザーが複数アカウントを作って会員サイトを使いたい放題にするのを阻止したい。
そのため、「PC1台からは必ず1ユーザーのみしかログインできないようにしたい」です。
(複数PCを使われたら仕方ないかもしれません・・・)

よく銀行サイトのようにログイン中に他のブラウザや端末からログインしようとすると「すでにログイン中です。ログインし直しますか?」のようになりますが、1.はこんな感じを考えています。

仕組みとしてはどのようにするのが良いのでしょうか?

1. ログイン時にセッションIDを作り、データベースにそのセッションIDとIPアドレスを記憶しておいて、Web上で何か操作するたびにブラウザ側のセッションIDとデータベース側のセッションIDを比べて同じなら操作を実行し、違うなら操作できないようにする。

2. ログイン中に別のブラウザからログインしようとすると、データベース側に保存されているセッションIDが違うのでログインできないようにする。

3. 同じIPアドレスですでにログイン中の場合、同じPCからは他のアカウントでログインできないようにする。

こんな感じでしょうか?
何か問題点やそもそもこの仕組は間違っていて常套手段があるなどありましたらお教えください。
なんとなく、IPアドレスのチェックはWiMAXなどは時間とともに変わったりするのであまり良くはないかもしれません。

どうぞよろしくお願い致します。

PHP+MySQLで会員サイトを作っています。

1. 誰か一人がログインしていたら、そのログイン会員と同じIDとパスワードでログインしようとするとログインできないようにするか、元のログインしていた人が強制的にログアウトするようにしたい。

2. 一人のユーザーが複数アカウントを作って会員サイトを使いたい放題にするのを阻止したい。
そのため、「PC1台からは必ず1ユーザーのみしかログインできないようにしたい」です。
(複数PCを使われたら仕方ないかもしれません・・・)

よく銀行サイトのようにログイン中...続きを読む

Aベストアンサー

何件か参考になるQ&Aがありました。

【Google検索結果】
https://www.google.co.jp/search?q=php+%E5%A4%9A%E9%87%8D%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3+%E9%98%B2%E6%AD%A2

「ログアウトせず、ブラウザを閉じたりするとログイン情報がが残り、最終アクセス日時からタイムアウト時間が経過するまでログインできません。」

これは大問題です。基本的に "操作出来ないようにする" という方針はやめたほうがいいです。 そうではなくて、新しくログインしようとしたときに "既存のセッションを終了させる" という方法を採ればすんなり解決できます。実際、私がやっていたネットゲームではこの方法が採られていましたww

IPアドレスに関してですが…いわゆるガラケーであれば個体識別番号というものがありましたが、現状ほとんどのデバイスではそういったものは存在せず、ユーザーに特別なソフトウェアをインストールしてもらわない限り、IPアドレスで判別するしかありません。これは妥協すべき点だと思います。

逆に…ガラケーにも対応させるのであれば、IPアドレスだけでのチェックは不十分です。何故ならば、複数のユーザーが同一のプロキシサーバーを経由してインターネットにアクセスするため、ユーザーが違ってもIPアドレスが一致するケースが大いにあるからです。個体識別番号が環境変数に存在しているかどうかを調べ、存在していればそれを使用し、存在しないならばIPアドレスを使用する、といった工夫が必要になります。


今回の件とは直接関係ないですが参考にどうぞ↓

Qiita - PHPでデータベースに接続するときのまとめ
http://qiita.com/mpyw/items/b00b72c5c95aac573b71

何件か参考になるQ&Aがありました。

【Google検索結果】
https://www.google.co.jp/search?q=php+%E5%A4%9A%E9%87%8D%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3+%E9%98%B2%E6%AD%A2

「ログアウトせず、ブラウザを閉じたりするとログイン情報がが残り、最終アクセス日時からタイムアウト時間が経過するまでログインできません。」

これは大問題です。基本的に "操作出来ないようにする" という方針はやめたほうがいいです。 そうではなくて、新しくログインしようとしたときに "既存のセッションを終了させる" とい...続きを読む

Qasp.netでのセッションを使用したログイン

asp.netでmssql server を利用してログイン機能を実装しました。
以下のようなコードでmssqlに保存してあるIDとパスが一致すれば
以降の画面ではセッションにID、パスが保存され
page loadでセッションにID、パスがなかればページがすすんでいけないような設定にしています。
機能は問題なく動作しているのですがこのような仕様はセキュリティ上問題はないのでしょうか。
商用サイトではないのですが、ある程度広域に向けたサイトを構築しようと考えておりまして、セキュリティ向上のため、工夫できるようなことがあればご意見いただきたいです。
よろしくお願いいたします。

**************************************************************
ログインページ
**************************************************************
Dim staffid As Integer
Dim staffname As String
Dim adminflag As Boolean

Protected Sub btnLogon_Click(ByVal sender As Object, ByVal e As System.EventArgs)
'ユーザーIDの入力チェック
If txtUserID.Text = "" Then
lblErr.Text = "ユーザーIDを入力してください。"
Return
End If
'パスワードの入力チェック
If txtpassword.Text = "" Then
lblErr.Text = "パスワードを入力してください。"
Return
End If

'ユーザーとパスワードの検証
If Not CheckUserPassword(txtUserID.Text, txtpassword.Text) Then
lblErr.Text = "ユーザーIDまたはパスワードが違います。"
Return
End If
'セッション変数へ値をセットする
Session("StaffID") = staffid
Session("StaffName") = staffname
Session("AdminFlag") = adminflag

End Sub

Private Function CheckUserPassword(ByVal userid As String, ByVal password As String) As Boolean
Dim ret As Boolean
Dim strSQL As String
strSQL = "SELECT staffID, staff_name, admin_flag , permission FROM tbl_staff " & _
"WHERE userID = '" & userid.Replace("'", "''") & _
"' AND password = '" & password.Replace("'", "''") & "'"

'接続文字列を取得する
Dim cnStr As String = System.Configuration.ConfigurationManager.ConnectionStrings("hogehogeConnectionString").ConnectionString()

'コネクションを定義する
Using connection As New SqlConnection(cnStr)
'コマンドを定義する
Dim command As New SqlCommand(strSQL, connection)
'コネクションを開く
connection.Open()

Try
'コマンドからデータリーダーを定義する
Dim dr As SqlDataReader = command.ExecuteReader
'データリーダーから結果を読み込む
If dr.Read Then
'対象データが存在する場合
'正しいユーザーIDとパスワードが指定されたので、
'データリーダーから読み出したデータをメンバ変数にセットする
staffid = dr("staffID")
staffname = dr("staff_name")
adminflag = dr("admin_flag")
permission = dr("permission")
ret = True
Else
'対象データが存在しない場合
'不正なユーザーIDまたはパスワードが指定された
ret = False
End If
Catch ex As Exception
'例外処理(SQLエラーなど)
ret = False
End Try

'コネクションを閉じる
connection.Close()
End Using

'結果を返して終了する
Return ret
End Function


**************************************************************
ログイン後に行くページでの設定
**************************************************************

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

'[ユーザーID]ボックスにフォーカスをセットする

If Session("StaffID") Is Nothing Then
Response.Redirect("~/top.aspx")
ElseIf Not Session("AdminFlag") = True Then
Response.Redirect("~/top_normal.aspx")

End If

End Sub

asp.netでmssql server を利用してログイン機能を実装しました。
以下のようなコードでmssqlに保存してあるIDとパスが一致すれば
以降の画面ではセッションにID、パスが保存され
page loadでセッションにID、パスがなかればページがすすんでいけないような設定にしています。
機能は問題なく動作しているのですがこのような仕様はセキュリティ上問題はないのでしょうか。
商用サイトではないのですが、ある程度広域に向けたサイトを構築しようと考えておりまして、セキュリティ向上のため、工夫できるようなことが...続きを読む

Aベストアンサー

(1) セッションハイジャック対策 

→ フォーム認証(FormsAuthentication)を使う

http://d.hatena.ne.jp/atsukanrock/20100728/1280305074
http://d.hatena.ne.jp/teracc/20100424

(2) SQL インジェクション対策

シングルクォートのエスケープだけでは弱いかも

→SqlParameterCollection を使う

http://msdn.microsoft.com/ja-jp/library/ms998271.aspx


(3)パスワード漏洩対策

パスワードはDB上にハッシュ化(不可逆暗号化)して持つ。

仮に生データが漏れても使用できない。

Qrootでログインできない!

以前人から譲り受けたturbo linux7.2を最近使い始めたのですが、ひょんなことからそれまでログインできていたrootでログインしようとするとログインできなくなってしまいした。
singleモードでログインしなおし、パスワードの変更などをやってみたのですが、それでもやはりログインできない状態です。os起動時に”sshd"のチェックでNGがでているのですが、これが原因なのでしょうか?
知恵をお貸し下さい。宜しくお願いします。

Aベストアンサー

turbolinux7には、ServerとWorkstationがありますので、turbolinux7に固有の問題については、下のURLを参考にしてみてください。
そして、今回の障害は
/etc/group
/etc/passwd
/etc/shadow
の何れかが壊れている可能性があります。
以下のURLを参考にしてみてください。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/301chkgroupfile.html
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/428errpasswdcmd.html

参考URL:http://www.turbolinux.co.jp/knowledge/public/topproduct.html

Q【ASP.NET】 ログインコントロールにおいて

おせわになります。
Visualstudio 2005 のASP.NET VB でWEBサイトを作成しております。

ASP.NET  で ログインコントロールを使って、認証ページを作っているのですが。

ID
PASSWORD

この2つのIDをログインコントロール内で、使用しているのは分かるのですが、

このIDに加え

ID
名前
PASSWORD

という3つのデータによって、ログイン制御を行いたいと考えております。
ログインコントロール内で、テーブルを追加して、「名前」を増やした所、
このIDをVB.NET側で、受け取れません。

ASP.NET 側の ログインコントロールのソースは




/////// ここからが問題の箇所 /////////////
<tr>
<td align="right" style="height: 24px; width: 149px;">
<asp:Label ID="Label2" runat="server" AssociatedControlID="USERID">ID:
</asp:Label></td>
<td style="height: 24px; width: 312px;">
<asp:TextBox ID="USERID" runat="server" MaxLength="5" OnTextChanged="USERID_TextChanged"
Width="152px">
</asp:TextBox>
<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="USERID"
ErrorMessage="ユーザーIDは5文字以下にしてください。" ToolTip="ユーザーIDは10文字以下にしてください" Type="String"
ValidationGroup="Login1">*</asp:RangeValidator>
</td>
</tr>

/////// ここまでが問題の箇所 ////////////


/////// ここからは通常に起動 /////////////
<tr>
<td align="right" style="height: 24px; width: 149px;">
 <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">氏名(カナ):</asp:Label></td>
<td style="height: 24px; width: 312px;">
<asp:TextBox ID="UserName" runat="server" Width="152px" OnTextChanged="UserName_TextChanged" MaxLength="10">
</asp:TextBox>
<asp:RangeValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
ErrorMessage="ユーザー名は10文字以下にしてください。" Type ="String" ToolTip="ユーザー名は10文字以下にしてください" ValidationGroup="Login1">
*</asp:RangeValidator>
</td>
</tr>
<tr>
<td align="right" style="height: 29px; width: 149px;">
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">パスワード:
</asp:Label>
</td>
<td style="width: 312px; height: 29px;">
<asp:TextBox ID="Password" runat="server" TextMode="Password" Width="152px">
</asp:TextBox>
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
ErrorMessage="パスワードが必要です。" ToolTip="パスワードが必要です。" ValidationGroup="Login1">
*
</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2" style="color: red">
<asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
</td>
</tr>


VB.NET 側では以下のスクリプトで指定しています。



Protected Sub LoginButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Login1.LoggedIn

////////// 受け取れない //////////////////
Dim strID As String = Login1.UserID.ToString


////////// 受け取れる //////////////////
Dim strID As String = Login1.UserName.ToString

////////// 受け取れる //////////////////
Dim strID As String = Login1.Password.ToString

このように、LOGIN コントロールに UserIDを追加できません。
よって、session などに、 UserID のVALUE を受け取れるようにしたいのですが、
asp.net側の 設定はどのようにしたらよろしいのでしょうか。

ログインコントロールは あきらめて、通常の独自の認証システムを作るべきですかね。

ログインコントロールに 通常のテキストボックスとして、追加はできないものでしょうか。

どなたかご存知の方、いらっしゃいましたら、教えていただけますと幸いです。

どうぞ宜しくお願いいたします。

おせわになります。
Visualstudio 2005 のASP.NET VB でWEBサイトを作成しております。

ASP.NET  で ログインコントロールを使って、認証ページを作っているのですが。

ID
PASSWORD

この2つのIDをログインコントロール内で、使用しているのは分かるのですが、

このIDに加え

ID
名前
PASSWORD

という3つのデータによって、ログイン制御を行いたいと考えております。
ログインコントロール内で、テーブルを追加して、「名前」を増やした所、
このIDをVB.NET側で、受け取れません。

...続きを読む

Aベストアンサー

もともとのLoginクラスに UserIDなど独自に追加したプロパティが無いためです

独自にテンプレート化して追加したのであれば LoginコントロールのFindControlなどを使ってそのコントロールを特定しましょう

今回の例示なら
strID = CType( Login1.FindControl("USERID"), TextBox ).Text
といった具合です

もともとの UserNameやPasswordといったIDのコントロールを削除していないにもかかわらず Login1のプロパティで取得できないとなるとこのコードだけでは判別不能ですね

QOKWEBにログインできない!

昨日ひさびさにOKWEBを利用したんですが、何度やってもログインができなくてユーザー名とパスワードを入力しログインをクリックしてもまた同じ画面(ログイン画面)に戻ってしまいます。でも、カテゴリーの「新しい質問をする」というところだけからはなぜかログインできます。
これではお礼を記入することができないので困っています。なぜログインできないのでしょうか?
パソコンの機種はNECのVALUESTARです。

Aベストアンサー

Cookieや一時ファイルを削除してみたらいかがでしょうか。そのあとブラウザを再起動、もしくはOSの再起動をかけてみてください。
その上で再ログインしても駄目な場合は問い合わせ
した方がいいとは思いますが。

つい2日前、私もなりました。

QASP.NETでIPアドレスログイン管理を教えてください

こんばんわ。
現在、クライアントのIPアドレスを取得してSQLServerテーブルでログイン管理をするWebを作成したいと思っております。

ずっと調べていたのですが分からず、実はまだASP.NET自体あまり理解できておりません。書籍などで勉強してから投稿しろ!と思われるかもしれませんが時間がなく困っています。
どうかご教示を宜しくお願い致します。

わかる範囲で.vbにコードを書いてみましたがIPアドレスを取得してSQL Serverに接続後にIF文でエラーメッセージとメインページ表示を分岐したいのですが分らないのです。。。


Partial Class INDEX
Inherits System.Web.UI.Page
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

'ページを初期化するユーザーコードをここに挿入します。
If Not IsPostBack Then

'---------IPアドレス取得---------------
Dim strHost As String
Dim ip As System.Net.IPHostEntry
Dim ipAddr As System.Net.IPAddress

'ホスト名を取得
strHost = System.Net.Dns.GetHostName()

'IPリストを取得
ip = System.Net.Dns.GetHostByName(strHost)

'IPリストの最初を取得
ipAddr = ip.AddressList(0)


'---------SQL接続---------------
Dim cn As SqlConnection = New SqlConnection("Server=servername;database=data;UID=id;PWD=pass")
Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM IPAdd WHERE IP='" & ipAddr & "' AND Authority1='True'")

cn.Open()
Dim reader As SqlDataReader = cmd.ExecuteReader()
DemoGrid.DataSource = reader

DataBind()
reader.Close()
cn.Close()

End If
End Sub
End Class

こんばんわ。
現在、クライアントのIPアドレスを取得してSQLServerテーブルでログイン管理をするWebを作成したいと思っております。

ずっと調べていたのですが分からず、実はまだASP.NET自体あまり理解できておりません。書籍などで勉強してから投稿しろ!と思われるかもしれませんが時間がなく困っています。
どうかご教示を宜しくお願い致します。

わかる範囲で.vbにコードを書いてみましたがIPアドレスを取得してSQL Serverに接続後にIF文でエラーメッセージとメインページ表示を分岐したいのですが分...続きを読む

Aベストアンサー

ASPと違ってvbファイル内にHTMLコードを直書きしてもページには反映されません
# やってやれないことは無いのですが ...
適切なページへ遷移する方法を考えたほうが良いように思います

もしテスト的にやりたいのであれば
Loadイベントで判断だけしてフラグをセットします
LoadComplateイベントでフラグを判断材料にしてResponse.Writeを使ってHTMLを吐き出すとか

ログインのコントロールならツールボックスの中の『ログイン』グループにあるコントロールを使うことをお勧めします

Framsetは ASP.NETと相性がよくありません
パネルコントロールなどを使ってフレーム分けしたほうが良いように思います

.NET Framework SDKの『QuickStartチュートリアル』をインストールして基本的な使い方を学習しましょう


人気Q&Aランキング