多种权限判定问题
时间:2010-11-23 来源:Serabert~
示例如下:
代码<?xml version="1.0" encoding="utf-8" ?>
<Operators>
<Operator name="昨天" pid="001">
<operatorren username="小明" userid="AD001" />
<operatorren username="小强" userid="AD002" />
<operatorren username="小花" userid="AD003" />
</Operator>
<Operator name="今天" pid="002">
<operatorren username="小鸟" userid="AD004" />
<operatorren username="菜鸟" userid="AD005" />
<operatorren username="大鸟" userid="AD006" />
</Operator>
<Operator name="明天" pid="003">
<operatorren username="蚂蚁" userid="AD007" />
<operatorren username="蟑螂" userid="AD008" />
<operatorren username="黄雀" userid="AD009" />
</Operator>
</Operators>
其中昨天,今天和明天就是不同形式的权限名称,在各名称下都有可以设置访问的管理员名称和id(如:名称,小明;id,AD001)
然后我们可以写个公共方法来访问xml文档:
示例如下:
代码using System.Xml;
public static bool IsProAdmin(string admin, string paths, string pid)
{
int flag = 0;
string XmlUrl = HttpContext.Current.Server.MapPath(paths);
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(XmlUrl);
XmlNodeList nodelist = xmldoc.SelectSingleNode("Operators").ChildNodes;
foreach (XmlNode xn in nodelist)
{
if (xn.Attributes["pid"].Value.Trim() == pid)
{
XmlNodeList xl = xn.ChildNodes;
foreach (XmlNode xf in xl)
{
if (xf.Name.ToLower() == "operatorren")
{
if (xf.Attributes["userid"].Value.Equals(admin))
{
flag = 1;
break;
}
}
}
}
}
if (flag == 1)
{
return true;
}
else
{
return false;
}
}
这时我们就可以在需要做权限判定的页面来调用该方法即可,
示例如下:
string strXmlUrl = "页面权限xml文件地址";
IsProAdmin(Page.User.Identity.Name, strXmlUrl, "001")注:该例子是调用"昨天"权限判定
相关阅读 更多 +