23

ASP.NET フォーム認証を使用する ASP.NET 3.5 アプリケーションがあります。ページでデータを編集するときに、現在コンピューターにログインしている (ASP.NET アプリケーションではなく Windows にログインしている) Windows ユーザー名を取得できるようにしたいと考えています。

を使用するContext.User.Identity.Name.Tostring()と、ASP.NET アプリケーションにログインするユーザー名が取得されますが、Windows アカウント名が必要です。

System.Security.Principal.WindowsIdentity.GetCurrent().Name.Tostring()

また、Visual Studio から Web サイトを実行した場合にのみ機能しますが、IIS にデプロイした後はNT AUTHORITY\SYSTEMが返されます。

4

8 に答える 8

10

現在ログインしているユーザーを Windows アカウントに取得するには、次Windows authenticationの代わりに使用する必要がありForms authenticationます。

System.Security.Principal.WindowsIdentity.GetCurrent().Name.Tostring() は、Visual Studio から Web サイトを実行した場合にのみ機能しますが、IIS に展開した後は NT AUTHORITY\SYSTEM が返されます

アプリケーションの現在のユーザーが表示されます。アプリケーションを Visual Studio Web サーバーでホストすると、ローカル アカウントが使用されます。ただし、別の資格情報で Web アプリケーションにログインすると、現在の Windows ログインが常に表示されます。

この場合、IIS に展開されたアプリケーションは NT AUTHORITY\SYSTEM アカウントを使用します。

于 2013-04-24T06:24:46.140 に答える
9

現在ログインしているユーザーを C# で Windows に取得するには、次を使用します。

string Username = System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();
于 2016-03-29T12:23:33.820 に答える
1
string strName = HttpContext.Current.User.Identity.Name.ToString();

あなたが望んでいたことは正しかったのですが、 ASP.NET を使用して Windows NT ログに記録されたユーザー名を取得する方法(Web サーバーをセットアップする最初の手順)を参照して、最初に Web サーバーをセットアップする必要があります。

于 2013-04-24T06:19:52.803 に答える
0

次のリンクにある方法 1 の指示に従って、この問題を解決することができました - https://support.microsoft.com/en-us/help/896861/you-receive-error-401-1-when-あなたは統合を使用するウェブサイトを閲覧します 簡単に言うと、Windows 認証以外のすべての認証方法を無効にします。管理者アカウントで regedit を開き、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 を見つけ、ノードを右クリックして [新規] に移動し、[複数文字列値] を選択します。「BackConnectionHostNames」と入力し、Enter をクリックします。[値] に、アクセスを設定しようとしている Web サイトを入力し、[OK] をクリックします。IIS を再起動します。HttpContext.Current.User.Identity.Name を使用して現在の Windows ユーザーを取得できたら、WindowsPrincipal(this.Request.LogonUserIdentity) も Windows ユーザー名をログインさせました。参考までに System.Environment .UserName と System.Security.Principal.WindowsIdentity.GetCurrent().Name の両方で、IIS ユーザーを指定していました。

これは、私が根底にたどり着くのに何年もかかりました。頑張ってください。IIS は目覚めている悪夢です。

于 2018-06-11T08:43:27.857 に答える