2009-03-27 13 views

答えて

7

IISでは、統合Windows認証を有効にし、コードでは次のものを使用します。

Request.ServerVariables["LOGON_USER"] 

それは、ログインしたユーザーで、すなわちMYDOMAIN \ MYUSERNAMEユーザーでログインしていません

+0

ユーザーがIIS上で匿名ログオンを行った場合、彼のデータは表示されません。これは、IISが動作しているコンピュータでのみ機能します。 – VansFannel

+0

OK、これは、IISで無期限のログオンを無効にして動作します。 – VansFannel

+0

誰かがjava/tomcat相当のものを知っていますか? – opensas

0
System.Security.Principal.WindowsIdentity.GetCurrent().User.ToString 
+0

これは、IISの認証情報を返しますので、これは、ASP.NETアプリケーションでは動作しません – Lennaert

+0

IのWindowsユーザー名を返します。毎日これを使用してください。それは私にとって、そしてウェブサイトを使用しているすべてのユーザーにとってうまくいきます。 – Kezzer

+1

次に、あなたはおそらく身元詐称を使用しています。恐ろしいことであり、推奨されていません。 –

0

アクティブディレクトリメンバーシッププロバイダを調べる必要があります。これはASP.NETに組み込まれています。ここで

1

は、私は、Active Directoryに対してASP.netについては

using System; 
using System.DirectoryServices; 

namespace XYZcompany.Enterprise 
{ 
    public class AuthenicationMgr 
    { 
    private static readonly int AD_ERR_LOGON_FAIL = -2147023570; 
    private static readonly string _path = "LDAP://xxx.yyy.ggg"; 
    private static readonly string _domain = "xxx.yyy.ggg"; 

    public static bool IsAuthenticated(string username, string pwd) 
    { 
     bool authenticatedFlag = true; 
     string domainAndUsername = _domain + "\\" + username; 
     DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, pwd); 
     try 
     { 
     // Bind to the native AdsObject to force authentication. 
     Object obj = entry.NativeObject; 
     DirectorySearcher search = new DirectorySearcher(entry); 

     search.Filter = "(SAMAccountName=" + username + ")"; 
     search.PropertiesToLoad.Add("cn"); 
     SearchResult result = search.FindOne(); 

     if (result == null) 
     { 
      authenticatedFlag = false; 
     } 
     else 
     { 
      authenticatedFlag = true; 
     } 
     } 
     catch (System.Runtime.InteropServices.COMException ex) 
     { 
     if (ex.ErrorCode == AD_ERR_LOGON_FAIL) 
     { 
      authenticatedFlag = false; 
     } 
     else 
     { 
      throw new ApplicationException("Unable to authenticate user due to system error.", ex); 
     } 
     } 
     return authenticatedFlag; 
    } 
    } 
} 
+0

私はこれを尋ねませんが、私はそれを必要とします。ありがとうございました! – VansFannel

1

を認証するために使用するC#コードでIISがで、(正確に何の匿名ログオンが構成されていない場合は、おそらく

HttpContext.Current.User.Identity 

を使用することができます最小限)

関連する問題