ログインフォームを使ってみた

ASP.NETには標準的にログインに関するフォームだったり、新規ユーザの登録、パスワード忘れに対応するようなクラスが備わっている。

MS-SQLServerだとかと連携する方法は記事が見つかったりするのだが、Oracleに関してはまとまった記事がなくどうしていいのかさっぱりだったのでまとめておく。

 

前提

ODP.NETが導入済みであること。

<oracle_home>\ASP.NET\SQL\

あたりになにやらSQLファイルがいっぱいあること。

適当な(適して当たっている)権限が付与されたOracleユーザが使えること。

 

準備

「<oracle_home>\ASP.NET\SQL\」 にある以下のSQLをSQLPlusあたりで実行

 

  • InstallOracleASPNETCommon.sql
  • InstallOracleMembership.sql

 

sqlplus user/pass@tnsname @InstallOracleASPNETCommon.sql

sqlplus user/pass@tnsname @InstallOracleMembership.sql

 

 

 すると、いくつかのテーブルやらビューやらパッケージが作成されます。

 ここで作成されたテーブルに認証情報が書かれていく感じです。

 

ユーザーを作ってみる

画面にCreateUserWizardを貼り付けます。デザインビューから貼り付けるのが簡単でよいでしょう。

E-Mailの登録とか秘密の質問とかいらないので普通に画面から削っておきます。

 

 

 

Web.configの編集

次に、このままだとSQLServerを探しに行ってしまうようなのでWeb.configを編集してOracleに接続しに行くように変えてあげます。

 

OracleからOracleMenbershipProviderというのが出ているのでそれに変えます。

2カ所くらい追加が必要だと思います。

<system.web>
<membership>
<providers>
<remove name="AspNetSqlMembershipProvider" />
<add name="AspNetSqlMembershipProvider"
type="Oracle.Web.Security.OracleMembershipProvider, Oracle.Web, Version=4.121.2.1,
Culture=neutral, PublicKeyToken=89b483f429c47342"
connectionStringName="XE"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false" />
</providers>
</membership>

先ほど、秘密の質問とEmailのフォームを削ったのでrequiresQuestionAndAnswerとrequiresUniqueEmailをfalseとしておきます。CreateUserWizardのプロパティとしてもRequireEmailをfalseとする必要があるかもしれません。

 

 

<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/>
</appSettings>
<connectionStrings>
<add name="XE" connectionString="user id=scott;password=tiger;data source=XE;"/>
</connectionStrings>

 

connectionStringのユーザとパスワード、データソースの部分は適宜変更してください。

 

以上で、ユーザ登録できるようになっていると思います。(コードを1行も書かずに)

パスワードも一応暗号化されて登録されているようなのでいい感じです。

 

ログインしてみる

次に、先のユーザ登録フォームで作ったユーザでログインできるようにしてみます。

本当は、Web.configに定義したmembershipでできればよかったんだけどもやり方うまくわからず。とりあえず、ごり押しで作ってみています。

 

とりあえず、「Login」を画面に貼り付けます

 

 

 

 Authenticateイベントのメソッドを作ります。

 

 

 

そこに、今度はコードを書いていきます。

 

OracleMembershipProvider omp = new OracleMembershipProvider();
NameValueCollection name = new NameValueCollection();
name.Set("connectionStringName", "XE");
name.Set("requiresQuestionAndAnswer", "false");
name.Set("requiresUniqueEmail", "false");
omp.Initialize("AspNetSqlMembershipProvider",name);

if (omp.ValidateUser(LoginForm.UserName, LoginForm.Password))
{
e.Authenticated = true;
}
else
{
e.Authenticated = false;
}

 Web.configに書いた情報を読ませてOracleMembershipProviderをインスタンス化する方法がよくわからないので同じ情報を作ってあげてInitizlizeしてあげています。

ValidateUserで認証かけてあげて認証通ればAuthenticatedをtrueに設定するとログインしたことになります。

実際は適宜ログインIDなど必要情報をセッションに持つなどするとよいでしょう。

 

 

情報処理安全確保支援士の集合講習に行ってきた

尚、内容については秘密ですので。

やっぱり、講習単体でみると高いよなあという感想しか残らない。
これ、資格が絡まなければ受けに行かないやつである。講師がグループごとに張り付いてそれでグループワークというのならまあわかるんだけどもなあと。

なんにせよ、あと2年間は4万円で維持できるのでそこまでは頑張りたい所存。

MDR-7506のイヤーパッドを交換した

MDR-7506イヤーパッドが非常に劣化していたので交換した。
特殊な工具もなく手で交換できるのでお勧めである。

MDR-7506MDR-CD900STイヤーパッドは溝にはめて固定されているだけなので取り替えは簡単である。


まずは、購入したイヤーパッド
サードパーティからも安いものがいろいろと販売されているがここはSONY純正品。


交換前の様子。
表面の皮がボロボロととれてしまってとても汚い。
このまま装着するとひどいことになる。


イヤーパッドを外したところ。
写真だとわかりにくいけども、縁のところに溝があってそこにイヤーパッドをはめ込んでいく。


で、作業後。
ここまでで、全部で10分ほどで終わった。
おそらく、なれてくれば一瞬で終わる作業なのだろう。

新品同様の見た目になって満足。

情報処理安全確保支援士登録証がきた

4/1に発送とは聞いていたが、4/1に到着した。
書留で届いた。

届いたのは登録証と受講計画で受講計画としてはこれまで発表されていた内容から新しい情報はなく、本年度中にオンライン講習Cと集合講習。18年度にオンライン講習Aを19年度にオンライン講習Bを受講せよという内容であった。

講習の受講方法については別途メールで案内があるらしい。

情報処理安全確保支援士の登録書類の提出完了

簡易書留にて提出書類を出してきました。
ここまでかかった費用2万ちょっと。
かかった手間プライスレス。

はたして、リターンは??

とかなんとかいいつつ情報処理安全確保支援士

値段高いといいつつ本当に14万/3年は高いと言い切れるのかどうか実際申し込んでみて講習を受けてみて3年間維持してみないと本当のところはわからないというわけで、申込書類はすべて用意しておいた。
あとは、今月中に申し込む。

たとえば、集合講習8万円がとんでもなく良質な講習だとしたらよいわけだが……。
8万でできることやら、それに伴う収入とかなきゃやっぱりその時は高いと言わせてもらうぞ。