在哪里以及如何使用Page.RegisterRequiresViewStateEncryption()?

问题描述:

我想知道如何使用viewState加密注册一个控件。 Page.RegisterRequiresViewStateEncryption()方法的语法不指示页面对象以外的特定控件。提供一个示例代码来回答这个问题会很有帮助。在哪里以及如何使用Page.RegisterRequiresViewStateEncryption()?

RegisterRequiresViewStateEncryption()将与Page对象的ViewStateEncryptionMode属性一起使用。该属性支持三个值:

  • Always:页面的视图状态将总是进行加密。
  • Never:即使RegisterRequiresViewStateEncryption()由控件或页面本身调用,页面的视图状态将为从未被加密。
  • Auto:页面的视图状态将被加密仅当RegisterRequiresViewStateEncryption()被控件或页面本身调用时。

所以,如果你打电话Page.RegisterRequiresViewStateEncryption(),比如说,从一个控件的OnLoad()方法,或者从OnLoad()方法或网页的Page_Load事件,视图状态将被加密,除非你页面的ViewStateEncryptionMode属性设置为Never

上面的第一个链接包含一个代码示例,如果最终用户选择检索敏感信息,则在回发时启用视图状态加密。