授权模块代码片段:
/// <summary> /// HTTP模块默认授权配置 /// </summary> public class Authorization { Dictionary<string, string> users; bool hasValidate; /// <summary> /// 获取用户总数 /// </summary> public int UserCount { get { return this.users.Count; } } /// <summary> /// 是否具有验证项 /// </summary> public bool HasValidate { get { return this.hasValidate; } } internal Authorization() { this.users = new Dictionary<string, string>(); this.LoadUsers("Authorization"); this.hasValidate = this.users.Count > 0; } /// <summary> /// Authorization /// </summary> /// <param name="sectionName">配置节名称</param> public Authorization(string sectionName) { if ("Authorization".Equals(sectionName, StringComparison.OrdinalIgnoreCase)) throw new ArgumentOutOfRangeException("sectionName", "no allows you to define Authorization"); this.users = new Dictionary<string, string>(); this.LoadUsers(sectionName); this.hasValidate = this.users.Count > 0; } private void LoadUsers(string sectionName) { var section = System.Configuration.ConfigurationManager.GetSection(sectionName) as IDictionary; if (section != null) { var enumerator = section.GetEnumerator(); while (enumerator.MoveNext()) { this.users.Add(Convert.ToString(enumerator.Key), Convert.ToString(enumerator.Value)); } } } /// <summary> /// 检验是否合法 /// </summary> /// <param name="username"></param> /// <param name="password"></param> /// <returns>true 通过 / false 不通过</returns> public bool Validate(string username, string password) { if (this.hasValidate == false) { //不需要认证 return true; } var sourcePassword = ""; return this.users.TryGetValue(username, out sourcePassword) && sourcePassword.Equals(password); }