UserNameのみを使用したASP.NETフォーム認証
-
10-07-2019 - |
質問
私は少しハイブリッドな状況にあります。イントラネットasp.net Webアプリを作成しています。本格的なWindows認証を使用したくないのは、Active Directoryに適切なグループがセットアップされていないため、ユーザーが所属するグループに基づいてユーザーを認証できるからです。これまで、メンバーシップデータベースを作成していました、NTログインに基づいてユーザーを手動で認証していました。アプリはさらに複雑になり、メンバーシッププロバイダーとロールプロバイダーを使用してユーザーを認証することを検討しています。私の問題は次のとおりです。NTだけに基づいてユーザーを認証できるようにしたいのですが、Windows認証を使用したくありません。メンバーシップおよびロールプロバイダーにプラグインする独自のプロバイダーを作成し、フォーム認証を使用しますが、それを透過的にします。 Usersテーブルに基づいて、ユーザーを認証したり、NTだけに基づいてユーザーをリダイレクトしたりできます。これは可能ですか、またはこれを達成するために独自の小さなフレームワークを書くのにこだわっていますか?可能な限りプロバイダーフレームワークを利用したいと思います。
解決
フォーム認証を使用するようにweb.configを設定します。
IISで統合認証がオンになっていることを確認します(匿名を無効にする必要がある場合もあります)。これにより、ユーザーのNT名を取得できます。
次の方法でユーザーのNT名を取得できます。
Request.ServerVariables["LOGON_USER"]
次を使用して、パスワードを入力せずにユーザーをログインできます。
FormsAuthentication.RedirectFromLoginPage( userName, false );
所属していません StackOverflow