質問者
データベースの更新

質問
すべての返信
-
お返事ありがとうございます。
Webアプリです。
ChangePasswordにはMembershipProviderが必要らしく、
MembershipProviderにもThemeableAttributeクラスを宣言する必要があるとなっていました。
なので、
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Property)> _
Public NotInheritable Class ThemeableAttribute
と宣言しました。
その部分で早々エラーとなりました。
WebアプリでVB.NETを選んでいるので
Htmlには
<%@ Page Language="VB"%>と自動で入力されていたのですが、
その部分がなぜかエラーとなりました。
何が原因となっているのでしょうか?
-
もしかして、プログラム上からユーザのパスワードを変更したい、ということでしょうか?
この場合、ChangePasswordクラスは利用できません。MembershipUser.ChangePasswordメソッドを利用することになると思います。
http://msdn2.microsoft.com/ja-jp/library/system.web.security.membershipuser.changepassword.aspx -
お返事ありがとうございます。
すいません、説明ができていませんでした。
プログラムを始めたばかりで、練習をしています。
決められたIDとパスワードでログインし情報をもって来るシステムを作りたいのです。
まず、ログインで認証チェックまでは完了しました。
次にパスワード変更画面を作りすでに持っているIDとパスワードから新しいIDとパスワードを作りたいです。
そのためにChangePasswordというクラスをしらべたのですが、使うには先にThemeableAttributeクラスを宣言しなければならないと書いてありました。
そのコードが
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Property)> _
Public NotInheritable Class ThemeableAttribute
Inheritable Attribute
で、宣言をしました。
2段目の Class ThemeableAttributeの部分がエラーとなり、
ステートメントの終わりを指定できないとなりました。
恐らく間違いだらけだと思っているのですが、
アドバイスをいただきたいです。
やはりChangePasswordクラス自体が使えないのでしょうか?
ページ上から使用できるとは書いてありました。
-
> aspxに貼り付けということは、ログインページからの作業ということでしょうか?
ログインページに限ったことではありません。
別にパスワード変更専用のページを作成することもできます。> IDとパスワードはデータベースに作ってあります。
独自につくったデータベースですか?
CreateUserWizardコントロールとか管理ツールを使って作ったユーザでしょうか。
独自につくったデータベースであれば、ChangePasswordコントロールでは簡単には対応できないと思います。> そのデータベースから新しいIDとパスワードを更新させたいので、
前にも書いてますが、パスワードの更新はできますが、新しいIDの作成はChangePasswordコントロールではできません。
CreateUserWizardコントロールを使うようになります。このあたりのメンバーシップコントロールが一通り動くサンプルを作ってあるので、試してもらうとイメージがわきやすいかもしれませんね。
http://sample.dotnetfan.org/LoginSample/これらのコントロールは一連のものとして使うことがある意味前提になっています。
ユーザ名とパスワードを格納するデータベースも専用の決まった形式のデータベースが必要です。 -
> Accessデータベースから作っています。
ということは独自のデータベースを使っているということですね。
サンプルで使っているようなメンバーシップコントロールを利用するにはMemberShipProviderと呼ばれるものを利用する必要があります。
デフォルトで用意されているのはSqlMemberShipProviderというSQLデータベースを利用するものです。
Accessを利用する場合は、このSqlMemberShipProviderが使えません。
Access用のMemberShipProvierも製品版としては提供されていません。#MSDNサイトにサンプルとしての提供はあるようです。
つまり、何がいいたいかというと、これらのメンバーシップコントロールは「使えない」ので自分ですべて実装してください、ということです。
まぁ、たとえこれらのコントロールが使えるとしても、
> UserID
> パスワード
> 新しいUserID
> 新しいパスワード
> 登録ボタンこのようなコントロールは提供されていないので、どっちにしろ自分で作ることになります。
-
> 使うためには自分でCreateUserWizerdコントロールを実装しなければならないのですね。
こういったコントロールが内部で何をやっているかは隠されています。
#深くさぐっていけばだいたいの推測はつきますが。
むしろ現状では、これらのコントロールがどう動いているかとかまったく考えずに、単にAccessからユーザとパスワードを取り出してきて表示する部分と、新しいユーザIDとパスワードをAccessに書き込む部分を作るだけで十分なんじゃないでしょうか。
もともとユーザIDとパスワードを自分で独自に作りこんでいるのですよね?
であれば、その仕様に沿った形のものを考えればいいと思います。最初にChangePasswordを利用したい、との話だったので、ユーザの作成をCreateUserWizaredを使っているものだとばかり思っていろいろ書いてきましたが、それとまったく関係のない実装をしているのですから、コントロールを使うことにこだわらないほうが良いです。