猿问

【C#】请问,如何在自定义的特性里控制页面的跳转呀??

namespace BasicCode.AccountPermissionBLL.Attributes
{
[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method,AllowMultiple = true)]
public class ValidPermissionAttribute : Attribute
{
private readonly int _permissionNum;

public ValidPermissionAttribute(int permissionNum)
{
_permissionNum = permissionNum;
ValidAccountPermission();
}

///<summary>
/// 访问具体需要的权限
///</summary>
public int PermissionNum { get { return _permissionNum; } }

///<summary>
/// 当前用户的权限
///</summary>
public int CurrentUserPermissionNum { get; set; }

///<summary>
/// 验证当前用户权限是否满足所需要的权限
///</summary>
public void ValidAccountPermission()
{
if (PermissionNum != CurrentUserPermissionNum)
{
//TODO 如果两种权限不相等,则跳转至一个错误的页面Error.aspx
}
}
}
}

我用的.NET 4.0框架

慕标5832272
浏览 360回答 4
4回答

当年话下

特性说白了也就是在标注特性的属性上附加了一个特性对象,它本身不能影响被标注对象的行为,只能在对象行为中被执行。 希望能帮助到你。

烙印99

感谢你的回复!但我还是个新人,您的回答对我来说有点抽象……就从这个例子来说的话,究竟用特性能否实现需求呢?若不能的话,那该用哪种解决方案来做到对权限的控制呢~~

尚方宝剑之说

@Kamirin: 我觉得特性非常好,特别在权限控制中使用非常方便。也没有找到成熟的办法,不如就照着这个思路做下去吧。另外就像楼上说的,我的意思就是你写在特性中的方法根本没有执行,因为特性不会自己执行自己的方法,必须你主动去调用。
随时随地看视频慕课网APP
我要回答