- - PR -
ユーザー認証について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2002-08-14 19:55
いつもお世話になっております。
かなめです。 ユーザー認証用の画面に、ユーザーIDとパスワードとドメインを入力してもらい、 ドメインによるパスワードチェックを行いたいと思っています。 そこで、Web Serviceを使用て、チェックを行おうと考えています。 (普通のクラスでも良かったのですが、Web Serviceの方が汎用的かと・・・) 下記のようにプログラムを作成したのですが、うまく動作しません。 Win32 APIの呼び出しが悪いような感じはするのですが、 よくわからなくて・・・。 .NET FrameWorkの認証機能を使うことも考えましたが、 出来ればプログラムによるチェックを行いたいと思っています。 おわかりの方、ご教授お願い致します。 ********** Imports System.Web.Services <WebService(Namespace:="http://tempuri.org/")> _ Public Class lgonC Inherits System.Web.Services.WebService Declare Function LogonUser Lib "ADVAPI32.DLL" Alias "LogonUserA" (ByVal lpszUsername As String, ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As Integer, ByVal dwLogonProvider As Integer, ByRef phToken As Integer) As Integer Public Const LOGON32_LOGON_BATCH As Short = 4 Public Const LOGON32_LOGON_INTERACTIVE As Short = 2 Public Const LOGON32_LOGON_SERVICE As Short = 5 Public Const LOGON32_PROVIDER_DEFAULT As Short = 0 Public Const LOGON32_PROVIDER_WINNT35 As Short = 1 Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Integer) As Integer <WebMethod()> Public Function lgoncheck(ByVal uName As String, ByVal Pwd As String, ByVal Domain As String) As Integer Dim hToken As Integer = 0 Dim Rtn As Integer Dim lhToken As Integer Dim dummy As Integer Rtn = LogonUser(uName, Domain, Pwd, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, lhToken) hToken = lhToken lgoncheck = Rtn If hToken <> 0 Then dummy = CloseHandle(lhToken) End If End Function End Class | ||||
|
投稿日時: 2002-08-15 13:11
基本認証か統合 Windows 認証ではダメなんでしょうか? ※ 参照 : ASP.NET における認証 : .NET セキュリティ ガイド, [HOW TO] Windows セキュリティを使用して ASP.NET アプリケーションをセキュリティで保護する方法 | ||||
|
投稿日時: 2002-08-17 03:33
ASPや、VBなどのプログラミング言語でドメインレベルの制御を行うのであれば、ADSIを使うべきです。ADSIはディレクトリサービス用のAPIで、Win32APIを直接コールするよりは遙かに簡単に、ドメインユーザー(ローカルユーザーもその一つです)や、ExchangeServerのユーザー管理、IISそのもののセキュリティ制御なども可能になっています。
参考書としては翔泳社から、『ADSI ASPプログラミング』というちょっと古い本ですが、充実した内容のものが出版されています。ですが、本の中のサンプルは同社のサイトからダウンロード可能です。 http://www.shoeisha.com/down/book/adsi/adsicode.zip とりあえず、試してみることをお勧めします。 _________________ -------------------------------------- ネットビルド 小田原貴樹 odahara@netbuiuld.jp -------------------------------------- | ||||
|
投稿日時: 2002-08-17 12:44
ADSI を利用するなら、.NET F/W からは System.DirectoryServices を使うのでは? ms-help://MS.VSCC/MS.MSDNVS.1041/cpref/html/frlrfSystemDirectoryServices.htm System.DirectoryServices 名前空間 (VS.NET のオンラインマニュアル) または、 System.DirectoryServices 名前空間 (MSDN オンライン ライブラリ) | ||||
|
投稿日時: 2002-08-17 17:48
>ADSI を利用するなら、.NET F/W からは System.DirectoryServices を使うのでは?
まったく、その通りです。ありがとうございます。 うーん、.NET良くできてる(苦笑)。 _________________ -------------------------------------- ネットビルド 小田原貴樹 odahara@netbuiuld.jp -------------------------------------- | ||||
|
投稿日時: 2002-08-19 09:30
biac様・うりゅう様
ありがとうございます。 System.DirectoryServicesは知りませんでした。 勉強不足ですみません。。。 ヘルプ見ながらやってみます。 わからない時には、お願い致します。 |
1