主要的角色相关的代码如下
#region
IsRoles
public bool IsInRoles( string [] roleNames ) {
if (roleNames == null || roleNames.Length == 0 )
return false ;
string [] userRoles = Roles.GetUserRoleNames( this .Username );
foreach ( string userRole in userRoles ) {
foreach ( string roleName in roleNames ) {
if ( string .Compare(roleName,userRole, true ) == 0 )
return true ;
}
}
return false ;
}
/// <summary>
/// Specifies if a user in a System Administator administrator or not.
/// </summary>
public bool IsAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Specifies if a user in an administrator or not.
/// </summary>
public bool IsBlogAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.BlogAdministrator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Specifies if a user in an administrator or not.
/// </summary>
public bool IsGalleryAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.GalleryAdministrator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Specifies if a user in an administrator or not.
/// </summary>
public bool IsFileAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.FileAdministrator } );
}
catch {}
return false ;
}
}
public bool IsReaderAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.ReaderAdministrator } );
}
catch {}
return false ;
}
}
public bool IsMembershipAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.MembershipAdministrator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Specifies if a user in an administrator or not.
/// </summary>
public bool IsForumAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.ForumsAdministrator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Specifies if a user in an administrator or not.
/// </summary>
public bool IsModerator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.Moderator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Lookup to determine if this user belongs to the editor role.
/// </summary>
public bool IsEditor
{
get
{
try
{
return IsInRoles( new string [] {roles.SystemAdministrator, roles.Editor } );
}
catch {}
return false ;
}
}
/// <summary>
/// 新增新闻管理员
/// </summary>
public bool IsNewsAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.NewsAdministrator });
}
catch { }
return false ;
}
}
// public static bool IsInRole(string rolename)
// {
// return HttpContext.Current.User.IsInRole(rolename);
// }
#endregion
最后一个新闻管理员的角色就是新加的。
public bool IsInRoles( string [] roleNames ) {
if (roleNames == null || roleNames.Length == 0 )
return false ;
string [] userRoles = Roles.GetUserRoleNames( this .Username );
foreach ( string userRole in userRoles ) {
foreach ( string roleName in roleNames ) {
if ( string .Compare(roleName,userRole, true ) == 0 )
return true ;
}
}
return false ;
}
/// <summary>
/// Specifies if a user in a System Administator administrator or not.
/// </summary>
public bool IsAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Specifies if a user in an administrator or not.
/// </summary>
public bool IsBlogAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.BlogAdministrator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Specifies if a user in an administrator or not.
/// </summary>
public bool IsGalleryAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.GalleryAdministrator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Specifies if a user in an administrator or not.
/// </summary>
public bool IsFileAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.FileAdministrator } );
}
catch {}
return false ;
}
}
public bool IsReaderAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.ReaderAdministrator } );
}
catch {}
return false ;
}
}
public bool IsMembershipAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.MembershipAdministrator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Specifies if a user in an administrator or not.
/// </summary>
public bool IsForumAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.ForumsAdministrator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Specifies if a user in an administrator or not.
/// </summary>
public bool IsModerator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.Moderator } );
}
catch {}
return false ;
}
}
/// <summary>
/// Lookup to determine if this user belongs to the editor role.
/// </summary>
public bool IsEditor
{
get
{
try
{
return IsInRoles( new string [] {roles.SystemAdministrator, roles.Editor } );
}
catch {}
return false ;
}
}
/// <summary>
/// 新增新闻管理员
/// </summary>
public bool IsNewsAdministrator
{
get
{
try
{
return IsInRoles( new string [] { roles.SystemAdministrator, roles.NewsAdministrator });
}
catch { }
return false ;
}
}
// public static bool IsInRole(string rolename)
// {
// return HttpContext.Current.User.IsInRole(rolename);
// }
#endregion
然后找到该项目Configuration文件夹下面的RolesConfiguration.cs类
加上这段
// 新增新闻管理员角色
[XmlAttribute( " newsAdministrator " )]
public string NewsAdministrator
{
get { return _newsAdministrator; }
set { this ._newsAdministrator = value; }
}
public
string
RoleList()
{
return string .Format( " ^({0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}|{9}|{10}|{11}|{12})$ " ,Everyone,RegisteredUsers,SystemAdministrator,Moderator,Editor,ForumsAdministrator,GalleryAdministrator,BlogAdministrator,Owners,FileAdministrator,ReaderAdministrator,MembershipAdministrator,NewsAdministrator);
}
{
return string .Format( " ^({0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}|{9}|{10}|{11}|{12})$ " ,Everyone,RegisteredUsers,SystemAdministrator,Moderator,Editor,ForumsAdministrator,GalleryAdministrator,BlogAdministrator,Owners,FileAdministrator,ReaderAdministrator,MembershipAdministrator,NewsAdministrator);
}
最后还需要到CS角色管理中加上同名的NewsAdministrator角色