我正在使用c#和MVVM模式编写程序。该程序具有在线连接,需要登录。我已经创建了一个模型类来处理登录过程。
登录过程如下:登录凭据(用户名和密码)在线发送到登录页面,成功登录后,服务器发回登录cookie。我在本地存储这些cookie,并在服务器发出每个请求时发送它们,直到它们过期。
我在模型中创建了一个GetLoginCookies()方法,我希望这是获取登录cookie的唯一方法。此方法中的登录如下:获取存储的登录cookie,并与服务器进行验证。如果没有登录cookie,或者它们无效(例如已过期),请询问用户新凭据,并将其发送到服务器并获取新的登录cookie。
我想在一个方法中处理所有内容的原因是,我希望有一种方法可以在与服务器进行任何通信之前始终为我提供有效的登录cookie(或中止操作)。
我的问题是,在使用MVVM模式时,实现用户输入的最佳方式是什么?
答案 0 :(得分:0)
而不是您想要服务的模型。服务只是一个实用程序类,可以通过依赖注入注入到ViewModel中(您使用的是IoC?)
鉴于登录只是系统的一部分,并且需要cookie来执行其他Web调用,我将为完整的服务器交互创建服务。这样,服务可以在内部保留cookie,您的应用程序不必担心登录交互的细节。
例如
public class WebService {
public void Login(string username, string password) { ... }
public Data GetData() { ... }
public void AddNewData(Data data) { ... }
}