自定义服务器控件 继承不到父类/基类的 SupportsEventValidation 特性.
2009-09-15 13:53
429 查看
作者:不及格的程序员-八神
MSDN 根本没有说它不可以继承, 事实上它真是不能继承.
在SupportsEventValidationAttribute类的源码中可以看到注释
Note that this attribute does not inherit from the base class, since derived classes may not be able to validate properly.
我更愿意看到比较明确的声明,例如:
[AttributeUsageAttribute(AttributeTargets.Class, Inherited = false, AllowMultiple = false)],而它没有这样声明.
看看可序列化特性的声明,明确了它不能继承,所以我们在写要序列化类时必须带有该特性的声明.
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Delegate, Inherited = false)]
public sealed class SerializableAttribute : Attribute
这个属性是ASP.NET 2.0新增的
是为了验证用户控件回发的数据有效性
比如下拉列表盒,本身提供1到31天的选择,但是客户端修改了数据
提交了一个32的值,那么这时ASP.NET框架就会抛出异常,说提交数据非法.
有很多控件都会作这样的验证,如:Dropdownlist checkbox...
开发用户自定义控件,如果要验证数据的安全性,可以参考一下.
MSDN 根本没有说它不可以继承, 事实上它真是不能继承.
在SupportsEventValidationAttribute类的源码中可以看到注释
Note that this attribute does not inherit from the base class, since derived classes may not be able to validate properly.
我更愿意看到比较明确的声明,例如:
[AttributeUsageAttribute(AttributeTargets.Class, Inherited = false, AllowMultiple = false)],而它没有这样声明.
看看可序列化特性的声明,明确了它不能继承,所以我们在写要序列化类时必须带有该特性的声明.
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Delegate, Inherited = false)]
public sealed class SerializableAttribute : Attribute
这个属性是ASP.NET 2.0新增的
是为了验证用户控件回发的数据有效性
比如下拉列表盒,本身提供1到31天的选择,但是客户端修改了数据
提交了一个32的值,那么这时ASP.NET框架就会抛出异常,说提交数据非法.
有很多控件都会作这样的验证,如:Dropdownlist checkbox...
开发用户自定义控件,如果要验证数据的安全性,可以参考一下.
相关文章推荐
- (转)自定义一个控件继承基类usercontrol,但是不能输入中文
- This event supports the .NET Framework infrastructure and is not intended to be used directly from your code?继承自VScrollbar的自定义winform控件,某些事件不触发的问题(Winform控件开发学习)
- 自定义用户控件继承基类
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- 自定义用户控件继承基类
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- 自定义View三板斧之一——继承现有控件
- 缺省HTMLFORM导致自定义服务器控件脚本无法注册
- asp.net 自定义服务器控件属性
- aspx后台引用不到服务器控件
- MFC 自定义数字控件 (继承自CEdit)
- 自定义服务器控件ASP.NET Barcode Web Server Control
- 开发和使用自定义服务器控件 (二)
- 开发和使用自定义服务器控件
- ASP.NET2.0服务器控件之自定义状态管理
- Android自定义控件之继承ViewGroup创建新容器(四)
- ASP.NET服务器验证控件和JS自定义验证同时使用(小技巧)
- 自定义服务器控件之:日历 DateBox 控件
- 在 Visual Studio2008 中使用自定义 ASP.NET 服务器控件