我已经编写了代码发送带有指向URL的链接的电子邮件,用户必须点击该链接进行确认。缓冲区不能为空。参数名称:缓冲区
但是,当用户点击链接时,在浏览器中打开得到,但显示以下错误。
“缓冲区不能为空参数名:缓冲区”
请找到堆栈跟踪如下:
[ArgumentNullException: Buffer cannot be null.
Parameter name: buffer]
System.IO.MemoryStream..ctor(Byte[] buffer, Boolean writable) +9629927
System.IO.MemoryStream..ctor(Byte[] buffer) +6
Auth.IdentityTokenXChangeData.Deserialize(String base64Package) +187
Auth.IdentityTokenXChange.TrySniffIdentityToken(HttpRequest req, String& sessionId, String& sessionTag, String& returnUrl) +244
Auth.IdentityModule.OnBeginRequest(Object sender, EventArgs e) +365
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +220
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +120`
这是吃了我的一天。任何建议都会有很大的帮助。
上了错误的线索.. 我相信问题是与编码值的查询字符串
("F960866879F669E=Tw5NpFeW9HsAqc_Ap5dmOwqkZ041pFQGYLxRV-puumtHsfhrTYtDe51uCbGV44Kc1X3n6cggsynfqRmh74ie535ymkvATeK5Jii11tOMIZDZ_GVB8QolLeMU5i6KWEZculKhM0IOhYFaMc-DsB") -
的Base64编码解码正在返回“空”因为某些原因。
Method -
'System.Web.HttpServerUtility.UrlTokenDecode
("F960866879F669E=Tw5NpFeW9HsAqc_Ap5dmOwqkZ041pFQGYLxRV-puumtHsfhrTYtDe51uCbGV44Kc1X3n6cggsynfqRmh74ie535ymkvATeK5Jii11tOMIZDZ_GVB8QolLeMU5i6KWEZculKhM0IOhYFaMc-DsB")'
任何想法为什么它返回null?它不是一个有效的Base64编码?
有没有想过你的问题? –