ウィンドウドメインにログオンしたユーザーを検出できるASP.NETアプリケーションを開発したいと考えています。これらの資格情報は、ASP.NETアプリケーションのログオンに使用されます。ASP.NETアプリケーションを使用してコンピュータにログオンしたユーザーを検出する
どうすればいいですか?
ありがとうございます!
ウィンドウドメインにログオンしたユーザーを検出できるASP.NETアプリケーションを開発したいと考えています。これらの資格情報は、ASP.NETアプリケーションのログオンに使用されます。ASP.NETアプリケーションを使用してコンピュータにログオンしたユーザーを検出する
どうすればいいですか?
ありがとうございます!
IISでは、統合Windows認証を有効にし、コードでは次のものを使用します。
Request.ServerVariables["LOGON_USER"]
それは、ログインしたユーザーで、すなわちMYDOMAIN \ MYUSERNAMEユーザーでログインしていません
アクティブディレクトリメンバーシッププロバイダを調べる必要があります。これはASP.NETに組み込まれています。ここで
は、私は、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;
}
}
}
私はこれを尋ねませんが、私はそれを必要とします。ありがとうございました! – VansFannel
を認証するために使用するC#コードでIISがで、(正確に何の匿名ログオンが構成されていない場合は、おそらく
HttpContext.Current.User.Identity
を使用することができます最小限)
ユーザーがIIS上で匿名ログオンを行った場合、彼のデータは表示されません。これは、IISが動作しているコンピュータでのみ機能します。 – VansFannel
OK、これは、IISで無期限のログオンを無効にして動作します。 – VansFannel
誰かがjava/tomcat相当のものを知っていますか? – opensas