Я некоторое время искал ответ на этот вопрос, но проблема кажется довольно сложной, и я изо всех сил пытаюсь найти ответ.
Я начинающий разработчик программного обеспечения, работаю в начинающей компании и только что закончил первую версию системы для использования несколькими пользователями. Локальное тестирование программного обеспечения не вызвало проблем, но после публикации программного обеспечения на сервере Windows 2012 на iis я обнаружил серьезную проблему с системой входа в систему.
Когда программа загружается изначально, несколько пользователей могут войти в систему и использовать программу без проблем, однако (по-видимому) случайным образом система входа полностью перестает работать на всех компьютерах, которые в данный момент вышли из системы. Те, кто вошел в систему, могут выйти из системы и снова войти в нее со своей учетной записью или любой другой, но те, кто вышел из системы в этот момент, полностью теряют доступ к системе.
При использовании инструментов разработчика в Chrome оказывается, что все эти компьютеры полностью перестают создавать файлы cookie, созданные при входе в систему, и просто перенаправляют обратно на экран входа в систему.
Системы по-прежнему распознают неправильные входы в систему, и это происходит с разными компьютерами каждый раз, когда я загружаю программу.
Я понимаю, что это очень расплывчатый вопрос, но я рву на себе волосы!
Как я уже сказал, я новичок и совершенно не знаком с хостингом на бизнес-серверах, и у меня нет большого опыта работы с системами идентификации или входа в систему в целом, поэтому любая помощь очень ценится.
В основном я хочу знать, скорее всего, проблема в iis, если да, то где в iis мне искать? Или настройки безопасности серверов?
Есть ли эффективная причина для отладки этого во время работы на сервере?
Если проблема звучит как проблема с кодированием, когда файлы идентификации были отредактированы, дайте мне знать, какой это может быть класс, и я опубликую код.
Спасибо!
Редактировать:
Global.asax.cs
public class Global : HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
WebApiConfig.Register(GlobalConfiguration.Configuration);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
//Creates roles and adds an admin on first start
RoleCreator rc = new RoleCreator();
rc.CreateRoles();
rc.AddAdmin();
}
}
Startup.Auth.cs
public partial class Startup {
public void ConfigureAuth(IAppBuilder app)
{
// Configure the db context, user manager and signin manager to use a single instance per request
app.CreatePerOwinContext(UnitContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
// Enable the application to use a cookie to store information for the signed in user
// and to use a cookie to temporarily store information about a user logging in with a third party login provider
// Configure the sign in cookie
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
CookieName="TrackerCookie",
LoginPath = new PathString("/Login/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
// Use a cookie to temporarily store information about a user logging in with a third party login provider
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
// Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));
// Enables the application to remember the second login verification factor such as phone or email.
// Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from.
// This is similar to the RememberMe option when you log in.
app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);
}
Application_AuthenticateRequest
. Было бы хорошо, если бы вы могли вставить файл запуска, который создает файл cookie. - person Nilesh   schedule 30.07.2015