如果我理解正确,这是为了保持纯文本内存不足,以便应用程序可以安全地防止对内存,垃圾堆或分页到磁盘的内存的深奥攻击.SecureString被提供非托管字节,并在时间消耗一个非托管字节 - 然后字符串从内存中删除.(如果我离开,请纠正我!)
在ASP.NET中,秘密收集在webform中,后者以HTTPS格式发回.但随后Request对象变成从表单中的所有请求的值到名称值对,并将它们集合中,如请求["TxtPassword" - 所以我之前也可以得到字符串,它已经被不安全写入存储器.更糟糕的是,如果我使用的是控件,那么不安全的表示将在TextBox的属性中拥有更多的托管字符串.
要对此SecureString执行任何操作,我需要一个采用非托管字符串的API - 因此我似乎无法使用安全字符串来存储proc参数或其他内容.
我这样做是错误的还是尝试使用SecureString并且不将不安全字符串的副本泄漏到托管内存中这是一个愚蠢的错误?
切换到OAuth或Windows身份验证不是一种选择.