Я пытаюсь реализовать свой собственный 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?