フォーム認証を使用するプロジェクトを継承しましたが、最近の機能要求で、一部のユーザーのWindowsユーザー名を取得する必要があります。
これはフォーム認証を使用するWebサイトです(これを変更したくないので、現時点では手間がかかりすぎます)が、内部ユーザーがより簡単にログインできるようにする機能要求がありました(通常は入力する必要はありません)。パスワードまたはユーザー名)。
私の現在の方法は恐ろしいです。IPアドレスをチェックして、IPのいずれかから接続しているかどうかを確認し、接続している場合は、Windows認証を使用する別のプロジェクトにリダイレクトしてから元のページにリダイレクトします。ユーザー名を含むクエリ文字列(このメソッドを使用し続ける必要がある場合は、おそらくこれを暗号化する必要がありますが、それでも私が望むほど安全ではありません)。
アプリ内でWindows認証を比較的簡単に実行できますが、難しいのはWindowsユーザー名を取得することです。私はそれを行う方法を理解できなかったので、私のかなり醜い方法です。
どんな助けでも大歓迎です。
編集:私のセカンダリアプリはこれを行うだけです:
string username = HttpContext.Current.User.Identity.Name;
string retpath = Request.QueryString["retpath"];
Response.Redirect("http://" + retpath + "?id=" + username);