2012-02-28 22 views
0

サーバー上で現在のログインユーザー名を取得しますが、リモートクライアントからサーバー名/管理者を取得します。IIS 7.5とASP.NET経由でWindows認証ユーザー名を取得するには

以下

コードです:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    'Grab username from Windows Authentication, remove the 'HHI\', and assign to empName 
    'empname = Replace(HttpContext.Current.User.Identity.Name.ToUpper, "HHI\", "") 
    'empname = Replace(Page.User.Identity.Name, "HHI\", "") 
    empname = Replace(WindowsIdentity.GetCurrent.Name, "HHI\", "") 
    'empname = Replace(System.Threading.Thread.CurrentPrincipal.Identity.Name, "HHI\", "") 
    Response.Write(empname) 
End Sub 

私は名前付きのアカウントで、「ネットワークサービス」でアプリケーションプールを試してみましたが、「統合」と「クラシック」にパイプラインモードを設定しました。

上記のコードは、Server 2003/IIS6では正常に動作しますが、Windows Server 2008R2/IIS 7.5では動作しません。

ありがとうございました!

答えて

0

問題が見つかりました。明らかにサーバーへのRDPing中に私はWin7の私の 'Credentials Vault'にローカル管理権限を保存しました。既定では、これらの資格情報は列挙時にネットワークユーザー名を上書きします。

次のコードが正しく動作している:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    'Grab username from Windows Authentication, remove the 'HHI\', and assign to empName 
    empname = Replace(HttpContext.Current.User.Identity.Name.ToUpper, "HHI\", "") 
    Response.Write(empname) 
End Sub 

は、このに見えた人のためにありがとうございます!

関連する問題