2

Web システムを Windows 認証に移行しました。本番環境にデプロイした後、メモリリークに直面しました。poolmon.exe ユーティリティを使用して、ページ プール メモリ リーク (タグ Toke) であると定義しました。最近の変更では、次の 2 つのメソッドのみを追加しました。

using System.DirectoryServices.AccountManagement;


private bool IsLoginValid(string login, string password)
{
    bool isValid = false;
    using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, domainName))
    {
        isValid = pc.ValidateCredentials(login, password);
    }
    return isValid;
}

private bool isMemberOf(string login, string group)
{
    bool result = false;           
    using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, domainName))
    {
        using (UserPrincipal user = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, login))
        {
            if (user != null)
            {
                result = user.IsMemberOf(pc, IdentityType.Name, group);
            }
        }
    }
    return result;
}

漏れの正確なポイントを特定し、可能であれば回避策を​​提供してください。ありがとうございました。

4

2 に答える 2

0

メソッドUserPrincipal.FindByIdentity()にメモリ リークがあります。

于 2013-11-13T09:10:50.290 に答える