Всем привет.
Возникла очень странная ситуация — реализовал кастомный провайдей ролей (только его — без membership provider).
Реализация была следующей:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Caching;
using System.Web.Security;
namespace CSSA
{
public class CustomRoleProvider: RoleProvider
{
public override string ApplicationName
{
get { return "Service Auction"; }
set { }
}
/// <summary>
/// Add roles to users.
/// </summary>
/// <param name="usernames">list of member which need to accept roles</param>
/// <param name="roleNames">The list of role, which will be apply to user List</param>
public override void AddUsersToRoles(string[] usernames, string[] roleNames)
{
throw new NotImplementedException();
}
public override void CreateRole(string roleName)
{
}
public override bool DeleteRole(string roleName, bool throwOnPopulatedRole)
{
return true;
}
public override string[] FindUsersInRole(string roleName, string usernameToMatch)
{
throw new NotImplementedException();
}
public override string[] GetAllRoles()
{
return Role.GetRoles().ToArray();
}
public override string[] GetRolesForUser(string username)
{
return Member.GetUserRoles(username).ToArray();
}
public override string[] GetUsersInRole(string roleName)
{
throw new NotImplementedException();
}
public override bool IsUserInRole(string username, string roleName)
{
return true;
}
public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames)
{
throw new NotImplementedException();
}
public override bool RoleExists(string roleName)
{
return true;
}
}
}
и дальше декларирую использование этого провайдера — как дефолтного:
<authentication mode="Forms">
<forms name="lgnForm" loginUrl="Login.aspx" protection="All" timeout="120" path="/"/>
</authentication>
<roleManager enabled="true" defaultProvider="CustomRoleProvider">
<providers>
<clear/>
<add name="CustomRoleProvider" type="CSSA.CustomRoleProvider"/>
</providers>
</roleManager>
Почему когда вызываю на дефолтной страничке на OnButton_Click при вызове HttpContext.Current.User.IsInRole("test") всегда false.
Это несмотря на то что мой кастомный провайдер всегда возвращает true.
В чем дело ???
Заранее благодарен за помощь.