- - PR -
ASP.NET 2.0 ログインコントロールでカスタム認証
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-12-19 22:39
開発OS:Windows Vista Business
ASP.NET2.0 SQL Server 2008 で開発しております。 Form認証のログインコントロールのAuthenticateイベントで、ユーザ名とパスワード以外にも独自の項目のチェックを行おうとしています。 現在はその独自項目チェックを通過し、Authenticateイベントの引数のAuthenticateEventArgs.Atuhenticatedにtrueを設定すると、認証成功にすることはできています。 しかしこれだと、UserNameに紐付けられているPasswordが間違っていてもAtuhenticatedがtrueになってしまいます。 独自認証した際はUserNameとPasswordチェックもコードで書かないといけないのだと思い、以下のところまでは調べられました。 ・aspnetdbのdbo.aspnet_Applicationsテーブルでアプリケーション名からApplicationIdを取得。 ・同じくdbo.aspnet_UsersテーブルでApplicationIdとUserNameからUserIdを取得 ・dbo.aspnet_MembershipテーブルでUserIdのPasswordを取得 しかしこのDBから取得したPasswordは復号しないと、ログインコントロールのパスワードとは比較できません。 このパスワードを復号する方法をご存じの方、ご教授ください。 もしくは、復号しなくても、○○クラスの□□メソッドで認証ができる、等の情報がありましたらご教授ください。 |
|
投稿日時: 2008-12-20 01:29
Membership.ValidateUserでできませんか?
|
|
投稿日時: 2008-12-20 02:01
なちゃさんありがとうございます。
1日中悩んでたのが馬鹿らしくなるくらいあっさりと、Membership.ValidateUserでいけました。 |
|
投稿日時: 2008-12-22 10:17
問題自体は解決しているようですね。
> しかしこのDBから取得したPasswordは復号しないと、ログインコントロールのパスワードとは比較できません。 これは、デフォルトでパスワードを暗号化する設定になっているからです。 web.configの設定を変えることで、暗号化せずにDB内にパスワードを保存させることもできます。 ログイン系のコントロールの動作はweb.configの設定でいろいろ変えられるところが大きいので、調べて覚えておくと何かのときに役に立つかもしれません。 |
1