Проверка подлинности Windows с пользовательским (моим собственным) RoleProvider не работает на IIS - PullRequest
2 голосов
/ 06 июля 2011

Я пытаюсь реализовать свой собственный RoleProvider:

public class MyRoleManger : RoleProvider
{
    public override bool IsUserInRole(string username, string roleName)
    {
        throw new NotImplementedException();
    }

    public override string[] GetRolesForUser(string username)
    {
        throw new NotImplementedException();
    }
    private string appName = "";
    public override string ApplicationName
    {
        get { return appName; }
        set { appName = value; }
    }
....
}

Это мой Web.config:

 <system.web>
       .....
        <roleManager defaultProvider="RoleManger" enabled="true" >
            <providers>
            <clear/>
                <add name="RoleManger" type="UserManager.Client.Web.MyRoleManger" applicationName="MyApp"/>
            </providers>
        </roleManager>

        <authentication mode="Windows"/>
        <identity impersonate="true"/>
    </system.web>

    <system.webServer >
        <security>
            <authorization >
                <clear/>
                <add accessType="Allow" roles="anyRole"/>
                <add accessType="Deny" users="?"/>
            </authorization>
        </security>
        ...
    </system.webServer >

Но ASP.NET под IIS не вызывает метод MyRoleManager. Вместо этого попробуйте получить «anyRole» из групп безопасности Windows (AD). Как заставить IIS использовать MyRoleManager с аутентификацией Windows?

...