مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mha4065@protonmail.com

عضویت از 1399/02/13

مشکل لاگین در سایت ASP Core بعد از آپلود سایت در هاست اشتراکی

  • شنبه 13 اردیبهشت 1399
  • 00:15
تشکر میکنم

با سلام خدمت همگی

من یه سایت با ASP Core 2 درست کردم و روی لوکال مشکلی نداشت ولی وقتی پابلیشش کردم و آپلودش کردم روی هاست اشتراکی بخش احراز هویت (لاگین) کلا کار نمیکنه مثلا من بعد از وارد کردن نام کاربری و رمزعبورم هرچی روی دکمه ورود کلیک میکنم وارد نمیشه انگار که دکمه غیرفعال کلا

روی دکمه میزنم URL تغییر میکنه (مثلا از Home/Login به Account/Login تغییر میکنه) ولی وارد نمیشه

کسی میتونه کمکی بکنه من گیر کردم توی این قسمت بدجور

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • شنبه 13 اردیبهشت 1399
  • 09:27

سلام

باید یه جوری دیباگ کنی ببینیم مشکل دقیقا کجاست؟!

سیستم احزار هویت شما دقیقا چیه؟!

کاربر سایت

mha4065@protonmail.com

عضویت از 1399/02/13

  • شنبه 13 اردیبهشت 1399
  • 23:20

من توی هاست اشتراکی بلد نیستم چجوری دیباگ کنم

توی سیستم خودم مشکلی نداره

اینا کد های بخش لاگین سایت در کنترلر Account هستش

[HttpGet]
        [AllowAnonymous]
        public IActionResult Login(string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            return View();
        }

        //
        // POST: /Account/Login
        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                var q = await _userManager.FindByEmailAsync(model.Email);
                if(q != null)
                {
                    if(q.EmailConfirmed == false)
                    {
                        return View("CheckEmail");
                    }
                }
                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, set lockoutOnFailure: true
                var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
                if (result.Succeeded)
                {
                    _logger.LogInformation(1, "کاربر وارد شده است");
                    return RedirectToLocal(returnUrl);
                }
                if (result.RequiresTwoFactor)
                {
                    return RedirectToAction(nameof(SendCode), new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
                }
                if (result.IsLockedOut)
                {
                    _logger.LogWarning(2, "اکانت کاربر غیرفعال شذه است");
                    return View("Lockout");
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "لاگین نا معتبر");
                    return View(model);
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }

اینم کد های مربوط به لاگین در فایل Startup.cs هست :

public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<IdentityOptions>(options =>
            {
                options.Password.RequireDigit = false;
                options.Password.RequiredLength = 5;
                options.Password.RequireLowercase = true;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireUppercase = false;
            });

            services.AddDbContext<DataContext>(options =>
                options.UseSqlServer(
                    Configuration.GetConnectionString("DefaultConnection")));

            services.AddSingleton<IFileProvider>(
            new PhysicalFileProvider(
                Path.Combine(Directory.GetCurrentDirectory(), "wwwroot")));

            services.AddIdentity<ApplicationUser, IdentityRole>()
                .AddEntityFrameworkStores<DataContext>()
                .AddDefaultTokenProviders()
                .AddDefaultUI()
               .AddEntityFrameworkStores<DataContext>();

    
            services.AddMemoryCache();
            services.AddSession();
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddScoped<RoleManager<DataContext>>();
            services.AddTransient<Services.IEmailSender, AuthMessageSender>();
            services.AddTransient<ISmsSender, AuthMessageSender>();
        }

نمیدونم مشکل از کجاست دقیقا ،  اگر مشکل خاصی باشه نباید توی سیستم خودم (لوکال) هم کار بکنه

کاربر سایت

morteza shahabi

عضویت از 1398/12/16

  • سه شنبه 23 اردیبهشت 1399
  • 18:06

برای این که ببینی گیر کار کجاست لازمه دیباگ کنی

برای دیباگ سایتی که با core نوشته شده لازمه کد زیر رو در web.config اضافه کنی

 <environmentVariables> 
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> 
  </environmentVariables>

اطلاعات بیشتر در لینک زیر:

https://stackoverflow.com/questions/39238850/how-to-set-aspnetcore-environment-in-publish-file

کاربر سایت

mha4065@protonmail.com

عضویت از 1399/02/13

  • شنبه 27 اردیبهشت 1399
  • 13:16

ممنون از شما درست شد

من کدی که شما دادی رو به صورت زیر در Web.Config و بین تگ system.webserver نوشتم و به درستی کار کرد ممنون از شما

<aspNetCore processPath="dotnet" arguments=".\site.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout">
     <environmentVariables>
       <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
     </environmentVariables>
   </aspNetCore>

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)