KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a WCF service which contains a Login method that validates a username and password against the local machine credentials, and after a seemingly random period of time it will stop working for some users. The actual login command looks like this: public UserModel Login(string username, string password, string ipAddress) { // Verify valid parameters if (username == null || password == null) return null; try { using (var pContext = new PrincipalContext(ContextType.Machine)) { // Authenticate against local machine if (pContext.ValidateCredentials(username, password)) { // Authenticate user against database using (var context = new MyEntities(Connections.GetConnectionString())) { var user = (from u in context.Users where u.LoginName.ToUpper() == username.ToUpper() && u.IsActive == true && (string.IsNullOrEmpty(u.AllowedIpAddresses) || u.AllowedIpAddresses.Contains(ipAddress)) select u).FirstOrDefault(); // If user failed to authenticate against database if (user == null) return null; // Map entity object to return object and assign session token var userModel = Mapper.Map<User, UserModel>(user); userModel.Token = Guid.NewGuid(); userModel.LastActivity = DateTime.Now; // Authenticated users are added to a list on the server // and their login expires after 20 minutes of inactivity authenticatedUsers.Add(userModel); sessionTimer.Start(); // User
Tags (comma-separated)
Save Edits
Cancel