图3数据库设计
4. 核心功能模块设计
系统的核心功能包括:用户权限控制、客户订单处理流程、出库模块。
4.1系统登录模块
4.1.1用户登录与认证
按照需求,用户分为四种角色,对于不同的角色赋予不同的页面访问权限。在客户端采用ASP.NET Forms身份认证,用户在登录界面输入登录账号和密码后,点击登录按钮即可实现登录功能。如果登录失败给予相关信息提示,如果登录成功,则通过判断当前用户的角色访问不同的控制器,最终展示对应的页面。
4.1.2服务端登录的实现步骤描述
(1)服务/数据契约设计
STEP 1:创建名为user的数据契约,其成员包括:用户编号、密码、用户性别、用户姓名、用户角色、是否管理者。
STEP 2:创建名为IBasic的服务契约,其操作契约包括:用户登录、添加用户、删除用户、修改用户、增删改商品类型、增删改查商品、返回用户操作信息。
(2)业务逻辑
使用Lambda表达式,通过操作Entity Framework实体类,判断客户端传递过来的用户名和密码是否正确,若验证成功,则将当前用户信息返回到客户端,验证失败则返回null。
4.1.3客户端登录的实现步骤描述
客户端采用ASP.NET Forms身份认证,由于ASP.NET身份认证只能传递登录的用户名,为了在认证中保存用户额外的信息,如登录角色,这里采用了自定义身份标识,具体方法如下:
1)登录后,创建自定义的FormsAuthenticationTicket对象。
2)加密FormsAuthenticationTicket对象。
3)创建登录Cookie,将FormsAuthenticationTicket对象加密后的结果写入Cookie。
4)在管线的早期阶段,读取登录Cookie,如果有,则解密。
5)从解密后的FormsAuthenticationTicket对象中还原保存的用户信息(角色)。设置HttpContext.User为自定义的对象(角色)[10]。
用户经过服务器验证之后,在客户端的userlogController中调用上面的方法,通过在Global.asax中注册AuthenticateRequest事件,达到每次访问页面时进行用户权限的验证。
客户端通过传递用户数据,通过控制器userlog调用登录服务,服务器返回用户登录成功消息后,开始将服务端得到的数据按照上述方法写入到cookie中,写入成功后,根据当前登录用户的角色写入session中,并分配不同的控制器,在控制器里面再次验证用户是否为管理者,如果是,则在展示用户页面时,通过ajax方法动态加载管理者相应的链接。
上一页 [1] [2] [3] [4] [5] [6] 下一页
基于SOA架构的进销存管理系统的设计与实现 第4页下载如图片无法显示或论文不完整,请联系qq752018766