دسته بندی ها
00:00 1399/01/14

نحوه ارتباط فرم لاگین با فرم ثبت نام

مشخصات سوال کننده :
کاربر : ahmad_OtO     امتیاز کاربر : ‎−1     رتبه کاربر : 7108
دسته بندی : سی شارپ Asp.net Core Html Asp.net Mvc

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2417
هوش مصنوعی

پاسخ هوش مصنوعی

برای ارتباط فرم لاگین با فرم ثبت نام در ASP.NET Core، شما باید از سیستم احراز هویت ASP.NET Core استفاده کنید. برای این کار مراحل زیر را دنبال کنید:

1. **ایجاد مدل های کاربری**: ابتدا یک مدل برای کاربر خود ایجاد کنید.

public class ApplicationUser : IdentityUser
{
    // می توانید فیلدهای اضافی دیگری نیز اضافه کنید
}

2. **تنظیمات ارتباط با پایگاه داده**: در فایل `Startup.cs`، اطمینان حاصل کنید که سرویس های Identity را اضافه کرده اید و پایگاه داده را تنظیم کرده اید.

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    
    services.AddIdentity()
        .AddEntityFrameworkStores()
        .AddDefaultTokenProviders();
    
    services.AddControllersWithViews();
}

3. **ساخت Controller**: یک کنترلر برای مدیریت لاگین و ثبت نام بسازید.

public class AccountController : Controller
{
    private readonly UserManager _userManager;
    private readonly SignInManager _signInManager;

    public AccountController(UserManager userManager, SignInManager signInManager)
    {
        _userManager = userManager;
        _signInManager = signInManager;
    }

    [HttpGet]
    public IActionResult Login()
    {
        return View();
    }

    [HttpPost]
    public async Task Login(LoginViewModel model)
    {
        if (ModelState.IsValid)
        {
            var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, false);
            if (result.Succeeded)
            {
                return RedirectToAction("Index", "Home");
            }
            ModelState.AddModelError(string.Empty, "Invalid login attempt.");
        }
        return View(model);
    }

    [HttpGet]
    public IActionResult Register()
    {
        return View();
    }

    [HttpPost]
    public async Task Register(RegisterViewModel model)
    {
        if (ModelState.IsValid)
        {
            var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
            var result = await _userManager.CreateAsync(user, model.Password);
            if (result.Succeeded)
            {
                await _signInManager.SignInAsync(user, isPersistent: false);
                return RedirectToAction("Index", "Home");
            }
            foreach (var error in result.Errors)
            {
                ModelState.AddModelError(string.Empty, error.Description);
            }
        }
        return View(model);
    }
}

4. **ایجاد Views**: دو View برای لاگین و ثبت نام ایجاد کنید: `Login.cshtml` و `Register.cshtml`.

@model LoginViewModel

@model RegisterViewModel

5. **مدل های View**: شما به مدل های View برای لاگین و ثبت نام نیاز دارید.

public class LoginViewModel
{
    public string Email { get; set; }
    public string Password { get; set; }
    public bool RememberMe { get; set; }
}

public class RegisterViewModel
{
    public string Email { get; set; }
    public string Password { get; set; }
}

با دنبال کردن مراحل بالا، شما می توانید فرم لاگین و ثبت نام را در ASP.NET Core ارتباط دهید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : mohammad-i 00:39 1399/01/14

نمیدونم دقیقا منظورتون از ارتباط فرم لاگین و ثبت نام چیه. چون معمولا هردوتای این فرم ها توی وبسایت هستند.

اگه منظورتون لاگین کاربر هست که باید از کلاس SignInManager استفاده کنید و دستور زیر رو بنویسید:

private readonly SignInManager<ApplicationUsers> _signinManager;

 

var LoginResult = await _signinManager.PasswordSignInAsync(model.Username, model.Password, model.RememberMe, false);

  if (LoginResult.Succeeded)
  {
    //Your Codes...

  }

 

به این پاسخ امتیاز بدهید    0
امتیاز: 260 رتبه: 7
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود