有効なドメインを持つ現在ログインしているドメイン ユーザーを取得するために、ドメイン内のメソッドを使用していますUserPrincipal.Current.ToString()
。ただし、それを文字列で表示すると、IIS サーバーでホストされているときにエラーが発生します。
Unable to cast object of type 'System.DirectoryServices.AccountManagement.GroupPrincipal'
to type 'System.DirectoryServices.AccountManagement.UserPrincipal'.
ベストアンサー1
私も同じ問題を抱えていました。ローカル マシンでは問題なく動作しましたが、サーバー上の IIS に展開すると失敗しました。最終的に、動作させるために 2 つの点を変更する必要がありました。
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, User.Identity.Name);
そして最終的に名前 (またはその他の情報) を取得するために、 を使用しましたuser.DisplayName
。