1

WindowsPrincipal オブジェクトを作成し、それに対して IsInRole() を呼び出して、ユーザーが属する Active Directory からグループを取得しようとしています。ただし、次のように WindowsPrincipal オブジェクトを作成しようとするとすぐに:

WindowsIdentity winID = new WindowsIdentity("jdoe");

私のプログラムは次の例外をスローします。

「System.Security.SecurityException: 要求された暗号化の種類は、KDC でサポートされていません。」

私は途方に暮れています。何が起こっているのかを知るには、どこから始めればよいですか?

4

1 に答える 1

1

このサイトは、WindowsIdentity が「ユーザー プリンシパル名」を取ると述べています: http://msdn.microsoft.com/en-us/library/td3046fc.aspx

このサイトでは、ユーザー プリンシパル名が何であるかを定義しています: http://searchexchange.techtarget.com/definition/User-Principal-Name

また、最初のサイトには次のように記載されていることに注意してください。

このコンストラクターは、Windows Server 2003 ドメインのみに参加しているコンピューターで使用するためのものです。他のドメイン タイプでは例外がスローされます。

Active Directory をクエリする方法を示すコードプレックス プロジェクトは次のとおりです 。http://www.codeproject.com/Articles/28546/Active-Directory-Roles-Provider
Windows 認証を認証方法 (web.config で指定) として使用している場合は、利用可能な User オブジェクトを使用するだけです。 WindowsIdentity winID = (WindowsIdentity) User.Identity;

于 2013-05-09T05:35:29.913 に答える