// *********************************************************************** // Assembly : OpenAuth.App // Author : 李玉宝 // Created : 07-05-2018 // // Last Modified By : 李玉宝 // Last Modified On : 07-05-2018 // *********************************************************************** // // Copyright (c) http://www.openauth.net.cn. All rights reserved. // // // 用户权限策略工厂 // // *********************************************************************** using Infrastructure; using OpenAuth.Repository; using OpenAuth.Repository.Domain; using OpenAuth.Repository.Interface; namespace OpenAuth.App { /// /// 加载用户所有可访问的资源/机构/模块 /// 李玉宝新增于2016-07-19 10:53:30 /// public class AuthContextFactory { private SystemAuthStrategy _systemAuth; private NormalAuthStrategy _normalAuthStrategy; private readonly IUnitWork _unitWork; public AuthContextFactory(SystemAuthStrategy sysStrategy , NormalAuthStrategy normalAuthStrategy , IUnitWork unitWork) { _systemAuth = sysStrategy; _normalAuthStrategy = normalAuthStrategy; _unitWork = unitWork; } public AuthStrategyContext GetAuthStrategyContext(string username) { if (string.IsNullOrEmpty(username)) return null; IAuthStrategy service = null; if (username == Define.SYSTEM_USERNAME) { service= _systemAuth; } else { service = _normalAuthStrategy; service.User = _unitWork.FirstOrDefault(u => u.Account == username); } return new AuthStrategyContext(service); } } }