人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ピカチュウと申します。
再度質問を投稿します。
OS:WIN2003
ASP3.0(VBSCRIPT)
ASPでLDAPサーバーを使用してフォーム認証のプログラムを作成しています。
LDAPへの接続はできたのですが、
IDの状態、パスワードの有効期限の取り出し方がよくわかりません。
教えてください。
明確な答え、ヒントを出していただけた方に3000ポイントを進呈します。
よろしくお願いします。


ソースはぼかしています。

正常(0)errnumberはかえってくるようになったのですが、

以下の状態を取得したいのですが、ASPでのサンプルがないため、よくわかりません。

あと、もう少しなのですが、

状態(status)ACTIVE,ENACTVE、PASSWORD)、

PwdExpData(ユーザーパスワードの有効期限)

ポイントで釣って申し訳ありませんが明確な回答をいただけましたら300ポイント進呈します。
非常に困っています。
strPath = "LDAP://xxx.xxx.xxx.xxx:xxx/"

strUser = "cn=" & Request.Form("USERID") & ",ou=xxxx,ou=xxx,o=xxxx"

strPassword = Request.Form("PASSWORD")

Dim objDSO,objUser

Set objDSO = GetObject("LDAP:")

Set objUser = objDSO.OpenDSObject(strPath & strUser, strUser, strPassword, ADS_FAST_BIND)


If Err.Number <> 0 Then

'認証失敗

Else

'認証成功

End If


●質問者: pikacyuu
●カテゴリ:ビジネス・経営 科学・統計資料
✍キーワード:Active ASP LDAP Number OS
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● lame-delegate
●3000ポイント ベストアンサー

アカウントの状態はAccountDisabledではどうでしょう。

-------------------------------------------

(LDAPをSetするところまでは省略)

If objUser.AccountDisabled = false Then

Response.Write "アカウント無効"

Else

Response.Write "アカウント有効"

End If

-------------------------------------------



アカウントの有効期限は、AccountExpirationDateの値になります。

---------------------------------------------------------------

(LDAPをSetするところまでは省略)

Dim AccountExpiration

AccountExpiration = objUser.AccountExpirationDate

If err.number = -2147467259

Response.Write "有効期限は無期限です"

ElseIf AccountExpiration = "1970/1/1" Then

Response.Write "有効期限は無期限です"

Else

Response.Write "有効期限は" & AccountExpiration & "です"

End If

---------------------------------------------------------------

パスワードの有効期限はマイクロソフトサポートオンラインに

ちょうどいいものが見つかりましたのでリンクを記します。

http://support.microsoft.com/kb/323750/ja


蛇足ですが、VBScript(VBS)でパスワードの有効期限を入手するものを

昔作ったことがありましたので、いつか何かに使えたら使ってやってください。

※LDAPでは無い&ASPじゃまともに動かないので、万一WinNT://を使って何とかするには

Server.CreateObject("WScript.Shell") あたりを使って外部ファイルの実行を

あわせ技で使う必要があるかもしれません。

---------------------------------------------------------------

Dim MaxPwdAge

Set objNT = GetObject("WinNT://MachineName/UserName")

MaxPwdAge = objNT.Get("MaxPasswordAge")/86400

MsgBox("パスワード変更期限まで" & MaxPwdAge & "日")

◎質問者からの返答

lame-delegateさん

ご回答ありがとございます。

以下を試してみましたが、ステータスの情報を取得できませんでした。

?アカウント情報

アカウントが有効なユーザIDで下記を試したのですが、結果「アカウント無効」が表示されてしまいました。

If objUser.AccountDisabled = false Then

Response.Write "アカウント無効"

Else

Response.Write "アカウント有効"

End If

Response.End

?アカウントの有効期限

下記を試したのですが、アカウントの有効期限を取得できませんでした。(何も取得できませんでした)

Response.Write objUser.AccountExpirationDate

Response.End

?パスワードの有効期限

下記を試したのですが、パスワードの有効期限を取得できませんでした。(何も取得できませんでした)

Response.Write objUser.PasswordLastChanged

Response.End

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ