C# 如何在MVVM应用程序中处理来自的持久登录?

C# 如何在MVVM应用程序中处理来自的持久登录?,c#,cookies,httpwebrequest,C#,Cookies,Httpwebrequest,我正在编写一个应用程序,它在加载前显示一个登录表单,并向我以前开发的web应用程序发送POST请求 我可以发送登录详细信息并返回200条消息,并且可以接收该请求中的数据。但是,我现在希望在应用程序关闭后存储此登录,以允许用户不必在每次打开应用程序时登录,或者在这种情况下,当计算机重新启动时登录。(它将在启动时运行,但需要维护应用程序而不是WCF服务) 我在C#中使用HTTPWebRequest来处理对服务器的POST请求,我可以在服务器端制作cookie。我如何让我的应用程序知道这些cookie

我正在编写一个应用程序,它在加载前显示一个登录表单,并向我以前开发的web应用程序发送POST请求

我可以发送登录详细信息并返回200条消息,并且可以接收该请求中的数据。但是,我现在希望在应用程序关闭后存储此登录,以允许用户不必在每次打开应用程序时登录,或者在这种情况下,当计算机重新启动时登录。(它将在启动时运行,但需要维护应用程序而不是WCF服务)

我在C#中使用HTTPWebRequest来处理对服务器的POST请求,我可以在服务器端制作cookie。我如何让我的应用程序知道这些cookies,并以安全的方式存储它们,以允许我的整个应用程序持续登录?我已经研究了许多在C#中存储cookie的方法,例如以下两个链接:

然而,第一个链接中的代码给了我一个奇怪的cookie:

“CSCUER2=测试用户名;android_开发者_C:_width=243px;uu utma=1.1718972007.1316996246.1316996246.1;u utmz=1.1316996246.1.utmcsr=(直接)| utmccn=(直接)| utmcmd=(无);android_开发者_reference_reference\u lastpage=/C:/AndroidSDK/android sdk windows/docs/reference/android/speech/RecognizerIntent.html”


所以我不确定这种方法是否是最好的?任何提示都将不胜感激。

我认为CookieContainer(即MSDN链接)是设置和获取Cookie的正确方法(顺便说一句:请注意,您的问题与wpf或mvvm模式无关。这是一个通用的c#/.net/httpwebreuqest主题)

至于在用户机器上缓存可用于后续会话的凭据,有几种方法可以做到这一点。您可以将用户密码存储在安全位置,也可以存储从服务器发送给您的会话密钥。第二种方法的优点是会话密钥在时间上是有限的(例如,一周),之后,用户必须执行新的登录。会话密钥可以作为cookie或特定API从带外服务器传递给您。Web应用程序正在使用cookie,因为它们无法访问任何持久存储,但是wpf应用程序可以将密码或会话密钥存储在它想要的任何位置

我建议您使用DPAPI在用户计算机上保存机密。用谷歌搜索c#和DPAPI,看看如何在.net中实现