カテゴリー
.NET

SQL Server用のカスタムメンバシッププロバイダが出来た

サンプル通りにやってもうまくいかなかったけど、なんとかなったぞ、こんちくしょう。
↓サンプル
http://msdn2.microsoft.com/ja-jp/library/6tc47t75.aspx


サンプルはまずAccessの型で指定してあるので、そこは変更。それは当然。
あと、OdbcTypeとかなってるのも、SqlDbTypeに変更。まあ、そりゃそうだね。

この前から引っかかってたのが、HexToByteのところで、エラー↓

 returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);

hexStringに「AutoGenerate,IsolateApps」とか来てて、それをConverToByteとかしててエラー。
Convert.ToByteに渡す文字列は二番目の引数に入れた値によって変わるみたいだけど、16と入れていると00-ffまで受け付けるみたい。
だめじゃんね。とりあえず、ここを呼び出しているところを16進数の文字列を渡すように変えた。
うーん、元々はmachineKey.ValidationKeyの値を渡してるのだけど、確かに規定値はAutoGenerate,IsolateAppsとかなってる。
環境によっては16進数の文字列が返るのかな??

あと、このサンプルは「秘密の質問」とかもユーザー新規登録時に入力されている前提なので、CreateUserWizardでこのあたりの登録を消していると、Nullエラー!
これもnullだったら""にするようにした。あくまでサンプルだからこういう細かい作り込みはしょうがないけど、結構手間取りましたな。

これで、やっとユーザー新規登録とログインは出来るようになった。
ログイン部分はこれで大枠は出来たことになるかな。
細かい作り込みも試しにやってみよう。まだログイン後の画面遷移とかできてないし。

この記事を書いた人: A-tak

A-tak.com(えいたっく どっとこむ)の管理人。
Apple野郎なおっさんでしたが、ちょっと最近のAppleには飽き気味。
A-tak.comは2002年2月から運営(前身のサイトは1999年3月から)。今年で18年目!

Youtube / Twitter / Mastodon / Facebook