且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SharePoint 2007 采用表单验证 一段源码

更新时间:2022-09-15 13:42:33

到网上一篇文章在SharePoint Server 2007中创建定制的用户管理模块,做了试试看,第一次失败,最后终于解决了!原来是Sharepoint前台读取那个记录用户信息的文件,总是提示“Access Denied”,因为代码会直接抛Exception,而此时sharepoint因为验证问题,无法显示此错误,导致我也不清楚错误出在什么地方了。最后苦思冥想,在原代码的ValidateUser()中加入的异常的捕获处理,大功告成!不仅发现了问题所在,还看到了登陆不成功的对话框!看来自己写的代码,对异常处理也需要控制啊,尤其是那种为其他系统写组件,用以替换/实现某一功能的!
  1SharePoint 2007 采用表单验证 一段源码using System;
  2SharePoint 2007 采用表单验证 一段源码using System.Collections.Generic;
  3SharePoint 2007 采用表单验证 一段源码using System.Text;
  4SharePoint 2007 采用表单验证 一段源码using System.Web;
  5SharePoint 2007 采用表单验证 一段源码using System.Web.Security;
  6SharePoint 2007 采用表单验证 一段源码using System.IO;
  7SharePoint 2007 采用表单验证 一段源码using System.Collections.Specialized;
  8SharePoint 2007 采用表单验证 一段源码
  9SharePoint 2007 采用表单验证 一段源码namespace MOSSSecurity
 10SharePoint 2007 采用表单验证 一段源码{
 11SharePoint 2007 采用表单验证 一段源码    public class TextFileMembershipProvider : MembershipProvider
 12SharePoint 2007 采用表单验证 一段源码    {
 13SharePoint 2007 采用表单验证 一段源码        private String _sFilePath = "";
 14SharePoint 2007 采用表单验证 一段源码
 15SharePoint 2007 采用表单验证 一段源码        public String FilePath
 16SharePoint 2007 采用表单验证 一段源码        {
 17SharePoint 2007 采用表单验证 一段源码            get return _sFilePath; }
 18SharePoint 2007 采用表单验证 一段源码        }

 19SharePoint 2007 采用表单验证 一段源码
 20SharePoint 2007 采用表单验证 一段源码        private IDictionary<String, String> LoadAllUsers()
 21SharePoint 2007 采用表单验证 一段源码        {
 22SharePoint 2007 采用表单验证 一段源码            if (String.IsNullOrEmpty(this.FilePath))
 23SharePoint 2007 采用表单验证 一段源码            {
 24SharePoint 2007 采用表单验证 一段源码                throw new InvalidOperationException("FilePath is not set.");
 25SharePoint 2007 采用表单验证 一段源码            }

 26SharePoint 2007 采用表单验证 一段源码
 27SharePoint 2007 采用表单验证 一段源码
 28SharePoint 2007 采用表单验证 一段源码            Dictionary<String, String> result = new Dictionary<String, String>();
 29SharePoint 2007 采用表单验证 一段源码
 30SharePoint 2007 采用表单验证 一段源码            StreamReader reader = new StreamReader(FilePath, Encoding.Default);
 31SharePoint 2007 采用表单验证 一段源码            while (true)
 32SharePoint 2007 采用表单验证 一段源码            {
 33SharePoint 2007 采用表单验证 一段源码                String sLine = reader.ReadLine();
 34SharePoint 2007 采用表单验证 一段源码                if (sLine == null)
 35SharePoint 2007 采用表单验证 一段源码                {
 36SharePoint 2007 采用表单验证 一段源码                    break;
 37SharePoint 2007 采用表单验证 一段源码                }

 38SharePoint 2007 采用表单验证 一段源码                if (sLine.Trim().Length == 0)
 39SharePoint 2007 采用表单验证 一段源码                {
 40SharePoint 2007 采用表单验证 一段源码                    continue;
 41SharePoint 2007 采用表单验证 一段源码                }

 42SharePoint 2007 采用表单验证 一段源码                String[] line = sLine.Split(':');
 43SharePoint 2007 采用表单验证 一段源码                result.Add(line[0], line[1]);
 44SharePoint 2007 采用表单验证 一段源码            }

 45SharePoint 2007 采用表单验证 一段源码
 46SharePoint 2007 采用表单验证 一段源码            return result;
 47SharePoint 2007 采用表单验证 一段源码        }

 48SharePoint 2007 采用表单验证 一段源码
 49SharePoint 2007 采用表单验证 一段源码        private void WriteAllUsers(IDictionary<String, String> users)
 50SharePoint 2007 采用表单验证 一段源码        {
 51SharePoint 2007 采用表单验证 一段源码            if (String.IsNullOrEmpty(this.FilePath))
 52SharePoint 2007 采用表单验证 一段源码            {
 53SharePoint 2007 采用表单验证 一段源码                throw new InvalidOperationException("FilePath is not set.");
 54SharePoint 2007 采用表单验证 一段源码            }

 55SharePoint 2007 采用表单验证 一段源码
 56SharePoint 2007 采用表单验证 一段源码            using (StreamWriter writer = new StreamWriter(this.FilePath, false))
 57SharePoint 2007 采用表单验证 一段源码            {
 58SharePoint 2007 采用表单验证 一段源码                foreach (String userId in users.Keys)
 59SharePoint 2007 采用表单验证 一段源码                {
 60SharePoint 2007 采用表单验证 一段源码                    writer.WriteLine(userId + ":" + users[userId]);
 61SharePoint 2007 采用表单验证 一段源码                }

 62SharePoint 2007 采用表单验证 一段源码            }

 63SharePoint 2007 采用表单验证 一段源码        }

 64SharePoint 2007 采用表单验证 一段源码
 65SharePoint 2007 采用表单验证 一段源码        public override void Initialize(string name, NameValueCollection config)
 66SharePoint 2007 采用表单验证 一段源码        {
 67SharePoint 2007 采用表单验证 一段源码            base.Initialize(name, config);
 68SharePoint 2007 采用表单验证 一段源码
 69SharePoint 2007 采用表单验证 一段源码            _sFilePath = config["filePath"];
 70SharePoint 2007 采用表单验证 一段源码        }

 71SharePoint 2007 采用表单验证 一段源码
 72SharePoint 2007 采用表单验证 一段源码        public override string ApplicationName
 73SharePoint 2007 采用表单验证 一段源码        {
 74SharePoint 2007 采用表单验证 一段源码            get
 75SharePoint 2007 采用表单验证 一段源码            {
 76SharePoint 2007 采用表单验证 一段源码                return "/";
 77SharePoint 2007 采用表单验证 一段源码            }

 78SharePoint 2007 采用表单验证 一段源码            set
 79SharePoint 2007 采用表单验证 一段源码            {
 80SharePoint 2007 采用表单验证 一段源码                
 81SharePoint 2007 采用表单验证 一段源码            }

 82SharePoint 2007 采用表单验证 一段源码        }

 83SharePoint 2007 采用表单验证 一段源码
 84SharePoint 2007 采用表单验证 一段源码        public override bool ChangePassword(string username, string oldPassword, string newPassword)
 85SharePoint 2007 采用表单验证 一段源码        {
 86SharePoint 2007 采用表单验证 一段源码            return true;
 87SharePoint 2007 采用表单验证 一段源码        }

 88SharePoint 2007 采用表单验证 一段源码
 89SharePoint 2007 采用表单验证 一段源码        public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer)
 90SharePoint 2007 采用表单验证 一段源码        {
 91SharePoint 2007 采用表单验证 一段源码            return true;
 92SharePoint 2007 采用表单验证 一段源码        }

 93SharePoint 2007 采用表单验证 一段源码
 94SharePoint 2007 采用表单验证 一段源码        public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
 95SharePoint 2007 采用表单验证 一段源码        {
 96SharePoint 2007 采用表单验证 一段源码            IDictionary<String, String> users = this.LoadAllUsers();
 97SharePoint 2007 采用表单验证 一段源码            if (users.ContainsKey(username))
 98SharePoint 2007 采用表单验证 一段源码            {
 99SharePoint 2007 采用表单验证 一段源码                status = MembershipCreateStatus.DuplicateUserName;
100SharePoint 2007 采用表单验证 一段源码                return null;
101SharePoint 2007 采用表单验证 一段源码            }

102SharePoint 2007 采用表单验证 一段源码
103SharePoint 2007 采用表单验证 一段源码            users.Add(username, password);
104SharePoint 2007 采用表单验证 一段源码            this.WriteAllUsers(users);
105SharePoint 2007 采用表单验证 一段源码
106SharePoint 2007 采用表单验证 一段源码            status = MembershipCreateStatus.Success;
107SharePoint 2007 采用表单验证 一段源码
108SharePoint 2007 采用表单验证 一段源码            MembershipUser user = new MembershipUser(this.Name, username, username, email, passwordQuestion, "", isApproved, false, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now);
109SharePoint 2007 采用表单验证 一段源码            return user;
110SharePoint 2007 采用表单验证 一段源码        }

111SharePoint 2007 采用表单验证 一段源码
112SharePoint 2007 采用表单验证 一段源码        public override bool DeleteUser(string username, bool deleteAllRelatedData)
113SharePoint 2007 采用表单验证 一段源码        {
114SharePoint 2007 采用表单验证 一段源码            IDictionary<String, String> users = this.LoadAllUsers();
115SharePoint 2007 采用表单验证 一段源码            if (users.ContainsKey(username))
116SharePoint 2007 采用表单验证 一段源码            {
117SharePoint 2007 采用表单验证 一段源码                users.Remove(username);
118SharePoint 2007 采用表单验证 一段源码                this.WriteAllUsers(users);
119SharePoint 2007 采用表单验证 一段源码                return true;
120SharePoint 2007 采用表单验证 一段源码            }

121SharePoint 2007 采用表单验证 一段源码            else
122SharePoint 2007 采用表单验证 一段源码            {
123SharePoint 2007 采用表单验证 一段源码                return false;
124SharePoint 2007 采用表单验证 一段源码            }

125SharePoint 2007 采用表单验证 一段源码        }

126SharePoint 2007 采用表单验证 一段源码
127SharePoint 2007 采用表单验证 一段源码        public override bool EnablePasswordReset
128SharePoint 2007 采用表单验证 一段源码        {
129SharePoint 2007 采用表单验证 一段源码            get return false; }
130SharePoint 2007 采用表单验证 一段源码        }

131SharePoint 2007 采用表单验证 一段源码
132SharePoint 2007 采用表单验证 一段源码        public override bool EnablePasswordRetrieval
133SharePoint 2007 采用表单验证 一段源码        {
134SharePoint 2007 采用表单验证 一段源码            get return false; }
135SharePoint 2007 采用表单验证 一段源码        }

136SharePoint 2007 采用表单验证 一段源码
137SharePoint 2007 采用表单验证 一段源码        public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords)
138SharePoint 2007 采用表单验证 一段源码        {
139SharePoint 2007 采用表单验证 一段源码            totalRecords = 0;
140SharePoint 2007 采用表单验证 一段源码            return null;
141SharePoint 2007 采用表单验证 一段源码        }

142SharePoint 2007 采用表单验证 一段源码
143SharePoint 2007 采用表单验证 一段源码        public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
144SharePoint 2007 采用表单验证 一段源码        {
145SharePoint 2007 采用表单验证 一段源码            MembershipUserCollection result = new MembershipUserCollection();
146SharePoint 2007 采用表单验证 一段源码
147SharePoint 2007 采用表单验证 一段源码            IDictionary<String, String> users = this.LoadAllUsers();
148SharePoint 2007 采用表单验证 一段源码            foreach (String username in users.Keys)
149SharePoint 2007 采用表单验证 一段源码            {
150SharePoint 2007 采用表单验证 一段源码                if (username.StartsWith(usernameToMatch))
151SharePoint 2007 采用表单验证 一段源码                {
152SharePoint 2007 采用表单验证 一段源码                    result.Add(this.GetUser(usernameToMatch, false));
153SharePoint 2007 采用表单验证 一段源码                }

154SharePoint 2007 采用表单验证 一段源码            }

155SharePoint 2007 采用表单验证 一段源码
156SharePoint 2007 采用表单验证 一段源码            totalRecords = users.Count;
157SharePoint 2007 采用表单验证 一段源码            return result;
158SharePoint 2007 采用表单验证 一段源码        }

159SharePoint 2007 采用表单验证 一段源码
160SharePoint 2007 采用表单验证 一段源码        public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
161SharePoint 2007 采用表单验证 一段源码        {
162SharePoint 2007 采用表单验证 一段源码            MembershipUserCollection result = new MembershipUserCollection();
163SharePoint 2007 采用表单验证 一段源码
164SharePoint 2007 采用表单验证 一段源码            IDictionary<String, String> users = this.LoadAllUsers();
165SharePoint 2007 采用表单验证 一段源码            foreach (String username in users.Keys)
166SharePoint 2007 采用表单验证 一段源码            {
167SharePoint 2007 采用表单验证 一段源码                result.Add(this.GetUser(username, false));
168SharePoint 2007 采用表单验证 一段源码            }

169SharePoint 2007 采用表单验证 一段源码
170SharePoint 2007 采用表单验证 一段源码            totalRecords = users.Count;
171SharePoint 2007 采用表单验证 一段源码            return result;
172SharePoint 2007 采用表单验证 一段源码        }

173SharePoint 2007 采用表单验证 一段源码
174SharePoint 2007 采用表单验证 一段源码        public override int GetNumberOfUsersOnline()
175SharePoint 2007 采用表单验证 一段源码        {
176SharePoint 2007 采用表单验证 一段源码            return 0;
177SharePoint 2007 采用表单验证 一段源码        }

178SharePoint 2007 采用表单验证 一段源码
179SharePoint 2007 采用表单验证 一段源码        public override string GetPassword(string username, string answer)
180SharePoint 2007 采用表单验证 一段源码        {
181SharePoint 2007 采用表单验证 一段源码            return "";
182SharePoint 2007 采用表单验证 一段源码        }

183SharePoint 2007 采用表单验证 一段源码
184SharePoint 2007 采用表单验证 一段源码        public override MembershipUser GetUser(string username, bool userIsOnline)
185SharePoint 2007 采用表单验证 一段源码        {
186SharePoint 2007 采用表单验证 一段源码            IDictionary<String, String> users = this.LoadAllUsers();
187SharePoint 2007 采用表单验证 一段源码            if (users.ContainsKey(username))
188SharePoint 2007 采用表单验证 一段源码            {
189SharePoint 2007 采用表单验证 一段源码                MembershipUser result = new MembershipUser(this.Name, username, username, """"""truefalse, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now);
190SharePoint 2007 采用表单验证 一段源码                return result;
191SharePoint 2007 采用表单验证 一段源码            }

192SharePoint 2007 采用表单验证 一段源码            else
193SharePoint 2007 采用表单验证 一段源码            {
194SharePoint 2007 采用表单验证 一段源码                return null;
195SharePoint 2007 采用表单验证 一段源码            }

196SharePoint 2007 采用表单验证 一段源码        }

197SharePoint 2007 采用表单验证 一段源码
198SharePoint 2007 采用表单验证 一段源码        public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
199SharePoint 2007 采用表单验证 一段源码        {
200SharePoint 2007 采用表单验证 一段源码            return this.GetUser(providerUserKey.ToString(), userIsOnline);
201SharePoint 2007 采用表单验证 一段源码        }

202SharePoint 2007 采用表单验证 一段源码
203SharePoint 2007 采用表单验证 一段源码        public override string GetUserNameByEmail(string email)
204SharePoint 2007 采用表单验证 一段源码        {
205SharePoint 2007 采用表单验证 一段源码            return "";
206SharePoint 2007 采用表单验证 一段源码        }

207SharePoint 2007 采用表单验证 一段源码
208SharePoint 2007 采用表单验证 一段源码        public override int MaxInvalidPasswordAttempts
209SharePoint 2007 采用表单验证 一段源码        {
210SharePoint 2007 采用表单验证 一段源码            get return 999; }
211SharePoint 2007 采用表单验证 一段源码        }

212SharePoint 2007 采用表单验证 一段源码
213SharePoint 2007 采用表单验证 一段源码        public override int MinRequiredNonAlphanumericCharacters
214SharePoint 2007 采用表单验证 一段源码        {
215SharePoint 2007 采用表单验证 一段源码            get return 0; }
216SharePoint 2007 采用表单验证 一段源码        }

217SharePoint 2007 采用表单验证 一段源码
218SharePoint 2007 采用表单验证 一段源码        public override int MinRequiredPasswordLength
219SharePoint 2007 采用表单验证 一段源码        {
220SharePoint 2007 采用表单验证 一段源码            get return 1; }
221SharePoint 2007 采用表单验证 一段源码        }

222SharePoint 2007 采用表单验证 一段源码
223SharePoint 2007 采用表单验证 一段源码        public override int PasswordAttemptWindow
224SharePoint 2007 采用表单验证 一段源码        {
225SharePoint 2007 采用表单验证 一段源码            get return 999; }
226SharePoint 2007 采用表单验证 一段源码        }

227SharePoint 2007 采用表单验证 一段源码
228SharePoint 2007 采用表单验证 一段源码        public override MembershipPasswordFormat PasswordFormat
229SharePoint 2007 采用表单验证 一段源码        {
230SharePoint 2007 采用表单验证 一段源码            get return MembershipPasswordFormat.Clear; }
231SharePoint 2007 采用表单验证 一段源码        }

232SharePoint 2007 采用表单验证 一段源码
233SharePoint 2007 采用表单验证 一段源码        public override string PasswordStrengthRegularExpression
234SharePoint 2007 采用表单验证 一段源码        {
235SharePoint 2007 采用表单验证 一段源码            get return ""; }
236SharePoint 2007 采用表单验证 一段源码        }

237SharePoint 2007 采用表单验证 一段源码
238SharePoint 2007 采用表单验证 一段源码        public override bool RequiresQuestionAndAnswer
239SharePoint 2007 采用表单验证 一段源码        {
240SharePoint 2007 采用表单验证 一段源码            get return false; }
241SharePoint 2007 采用表单验证 一段源码        }

242SharePoint 2007 采用表单验证 一段源码
243SharePoint 2007 采用表单验证 一段源码        public override bool RequiresUniqueEmail
244SharePoint 2007 采用表单验证 一段源码        {
245SharePoint 2007 采用表单验证 一段源码            get return false; }
246SharePoint 2007 采用表单验证 一段源码        }

247SharePoint 2007 采用表单验证 一段源码
248SharePoint 2007 采用表单验证 一段源码        public override string ResetPassword(string username, string answer)
249SharePoint 2007 采用表单验证 一段源码        {
250SharePoint 2007 采用表单验证 一段源码            return "";
251SharePoint 2007 采用表单验证 一段源码        }

252SharePoint 2007 采用表单验证 一段源码
253SharePoint 2007 采用表单验证 一段源码        public override bool UnlockUser(string userName)
254SharePoint 2007 采用表单验证 一段源码        {
255SharePoint 2007 采用表单验证 一段源码            return true;
256SharePoint 2007 采用表单验证 一段源码        }

257SharePoint 2007 采用表单验证 一段源码
258SharePoint 2007 采用表单验证 一段源码        public override void UpdateUser(MembershipUser user)
259SharePoint 2007 采用表单验证 一段源码        {
260SharePoint 2007 采用表单验证 一段源码            
261SharePoint 2007 采用表单验证 一段源码        }

262SharePoint 2007 采用表单验证 一段源码
263SharePoint 2007 采用表单验证 一段源码        public override bool ValidateUser(string username, string password)
264SharePoint 2007 采用表单验证 一段源码        {
265SharePoint 2007 采用表单验证 一段源码            try
266SharePoint 2007 采用表单验证 一段源码            {
267SharePoint 2007 采用表单验证 一段源码                ExceptionMgt.Publish(new Exception(username + "|" + password));
268SharePoint 2007 采用表单验证 一段源码
269SharePoint 2007 采用表单验证 一段源码                IDictionary<String, String> users = this.LoadAllUsers();
270SharePoint 2007 采用表单验证 一段源码                if (!users.ContainsKey(username))
271SharePoint 2007 采用表单验证 一段源码                {
272SharePoint 2007 采用表单验证 一段源码                    return false;
273SharePoint 2007 采用表单验证 一段源码                }

274SharePoint 2007 采用表单验证 一段源码                if (users[username] != password)
275SharePoint 2007 采用表单验证 一段源码                {
276SharePoint 2007 采用表单验证 一段源码                    return false;
277SharePoint 2007 采用表单验证 一段源码                }

278SharePoint 2007 采用表单验证 一段源码
279SharePoint 2007 采用表单验证 一段源码                return true;
280SharePoint 2007 采用表单验证 一段源码            }

281SharePoint 2007 采用表单验证 一段源码            catch (Exception ex)
282SharePoint 2007 采用表单验证 一段源码            {
283SharePoint 2007 采用表单验证 一段源码                ExceptionMgt.Publish(ex);
284SharePoint 2007 采用表单验证 一段源码                return false;
285SharePoint 2007 采用表单验证 一段源码            }

286SharePoint 2007 采用表单验证 一段源码        }

287SharePoint 2007 采用表单验证 一段源码    }

288SharePoint 2007 采用表单验证 一段源码}

289SharePoint 2007 采用表单验证 一段源码
本文转自Jack Niu博客园博客,原文链接:http://www.cnblogs.com/skywind/archive/2007/04/03/697987.html,如需转载请自行联系原作者