Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中将SecurityToken序列化为xml#_C#_Xml_Iis_Serialization_Token - Fatal编程技术网

C# 在C中将SecurityToken序列化为xml#

C# 在C中将SecurityToken序列化为xml#,c#,xml,iis,serialization,token,C#,Xml,Iis,Serialization,Token,我们正在开发***Web API应用程序***,它使用安全令牌进行身份验证,出于某些原因,我们需要将此令牌与用户名一起放入内存缓存。在第二次请求时,令牌已经存在,无需输入用户名和密码。所以一切都很好。但由于某些策略,IIS在24小时后重新启动,缓存将为空,因此令牌消失,用户需要再次登录!我决定保存并将令牌序列化到本地文件中,并在需要时在24小时后进行检索!但是安全令牌类是一个抽象类,不能序列化为xml!我正在重写来自securityTokenHandler的WriteToken()方法,以将对象

我们正在开发***Web API应用程序***,它使用安全令牌进行身份验证,出于某些原因,我们需要将此令牌与用户名一起放入内存缓存。在第二次请求时,令牌已经存在,无需输入用户名和密码。所以一切都很好。但由于某些策略,IIS在24小时后重新启动,缓存将为空,因此令牌消失,用户需要再次登录!我决定保存并将令牌序列化到本地文件中,并在需要时在24小时后进行检索!但是安全令牌类是一个抽象类,不能序列化为xml!我正在重写来自securityTokenHandler的WriteToken()方法,以将对象更改为字符串!但它也有一些困难。有些属性很难转换为字符串

你知道我如何完成这项任务吗?

这是最好的解决方案吗

我现在唯一想到的是将每个属性转换为正确的类型,然后将值转换为字符串

我想哪些属性最重要;标记Xml和Validdate!
谢谢,如果问题不太清楚,请告诉我,以便更好地解释,

为什么要重写
WriteToken
方法?您使用的任何具体类都必须已经提供了一个实现。此方法的目的就是将令牌序列化为字符串。是的,因为我需要具有确切值的令牌,所以我打算序列化令牌,将其保存在文件中,然后在需要时检索它。但这对我来说有点难。您是否有将令牌序列化为字符串的示例代码?我认为您在cookie方面存在问题。您的应用程序(httprequest)正在查找URL并自动向请求添加cookie。服务器在重新启动时正在清除cookie,因此无法识别cookie,也不允许您登录。因此,一种解决方案是删除每个新请求的cookie。另一种解决方案是发送请求,当请求失败时,删除cookie。所以我希望当你成功的时候,服务器会发回一个200完成的,而失败的时候它会有一个不同的状态。继续的方法是使用类似wireshark或fiddler的嗅探器。我只需要一个简单的示例将令牌序列化为字符串,我在MSDN中找到了一些东西,但还不够清楚!