morliz子轩 自由职业 ERP程序员  05月03日
动态加载窗体权限控制问题

//有以下几个对象:
//1、业务窗体
public partial class FrmBranch : BaseDock
{
private PermissionsController Permissions { get; set; }
public FrmBranch()
{
InitializeComponent();
Permissions = new PermissionsController(this); //权限控制类

//根据权限屏蔽功能对象
InitAutothorizedUI();
}
}

//2、权限类
public class PermissionsController
{
private BaseDock Basedock { get; set; }
private BaseForm Baseform { get; set; }

/// <summary>
/// 功能模块名称
/// </summary>
public string Itemno { get; set; }

public PermissionsController(BaseDock frm)
{
Basedock = frm;
GetItemno();
}

public PermissionsController(BaseForm frm)
{
Baseform = frm;
GetItemno();
}

/// <summary>
/// 检查用户功能级权限
/// </summary>
/// <param name="itemno"></param>
public bool CheckUserFuncAuth()
{
//是否具备功能模块权限
bool IsAuthorization = false;

//判断查询权限
if (Basedock != null)
if (!Basedock.GetLiminf(Portal.gc.UserInfo.Logno, Itemno, "aaaa"))
{
IsAuthorization = true;
MessageDxUtil.ShowWarning("当前账户【" + Portal.gc.UserInfo.Logno + "】没有查询权限,请联系系统管理员!");
}

if (Baseform != null)
if (!Baseform.GetLiminf(Portal.gc.UserInfo.Logno, Itemno, "brow"))
{
IsAuthorization = true;
throw new ArgumentException("当前账户【" + Portal.gc.UserInfo.Logno + "】没有查询权限,请联系系统管理员!");
}

return IsAuthorization;
}

/// <summary>
/// 获取当前类模块名称
/// </summary>
/// <returns></returns>
private void GetItemno()
{
if (Basedock != null)
Itemno = BusinessHelper.GetRemovePrefixString(Basedock.Name, "Frm");

if (Baseform != null)
Itemno = BusinessHelper.GetRemovePrefixString(Baseform.Name, "Frm");
}

}



由于窗体是动态实例化加载的,当CheckUserFuncAuth()方法,为True时,终止FrmBranch窗体的实体化,这个要怎么控制实现,请教大神。
...全文
169 点赞 收藏 4
写回复
4 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告