سلام
بعد از احراز حویت موفق مقدار user.identity.isauthenticated همیشه False برگشت داده می شود
مشکل از کجاست و چگونه باید آن را برطرف کرد.
سلام. با اجازه استاد.
حتما در بخش program.cs دو عبارت زیر باشه تا مشکل شما برطرف بشه. منم مشکل مشابه شما رو داشتم.
app.UseAuthentication();
app.UseAuthorization();
سلام دوست من وقتتون بخیر
موردی که دوستمون گفتن رو بررسی کنید حتما
سلام
این دو مورد از ابتدا اضافه شده بود و در ابتدا به درستی کار می کرد ولی بعد از مدتی با مشکل روبرو شد
بعد از جستجو متوجه چند مورد که یکی از موارد تقدم و تاخر موارد اشاره شده دوستمون هست شدم ولی بعد از برسی همه موارد مشگل همچنان حل نشد.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseCors("EnableCors");
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}/{pass?}");
});
}
سلام مجدد دوست عزیزم
لطفا کدهای نوشته شده برای لاگین رو هم ارسال کنید
با تشکر از شما
سلام و خسته نباشید
اطلاعات درست فراخوانی میشه و داخل Claim ذخیره میشه ولی در Layout موقع کنترل کردن ,User خالی هست.
public IActionResult Login(LoginViewModel value)
{
value.Mobile = "0";
if (!ModelState.IsValid)
{
return View(value);
}
var curentuser = _usersRepository.GetUserForLogin(value.Email.ToLower(), value.Mobile.ToLower(), value.Password);
if (curentuser == null)
{
ModelState.AddModelError("Email", "اطلاعات درست نیست.");
return View(value);
}
var claims = new List<Claim>
{
new Claim(ClaimTypes.NameIdentifier,curentuser.UserId.ToString()),
new Claim(ClaimTypes.Name, curentuser.Email),
new Claim("Mobile",curentuser.Mobile)
};
var Identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
var princ = new ClaimsPrincipal(Identity);
var prop = new AuthenticationProperties
{
IsPersistent = value.RememberMe
};
HttpContext.SignInAsync(princ, prop);
var res = User.Identity.IsAuthenticated;
return Redirect("/");
}
دوست عزیزم لطفا کدهای مربوط به اضافه کردن سرویس هارو هم برای من ارسال کنید
با تشکر
سلام مجدد
ممنون از پیگیرتون
public void ConfigureServices(IServiceCollection services)
{
#region DataBase
services.AddControllersWithViews();
services.AddDbContext<ShopContext>(options =>
{
options.UseSqlServer("Data Source=.;Initial Catalog=suorenai_787;Persist Security Info=True;User ID=*******;Password=*********");
});
#endregion
#region IOC
services.AddScoped<IUsersRepository, UsersRepository>();
#endregion
#region Authentication
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(option =>
{
option.LoginPath = "/Account/Login";
option.LogoutPath = "/Account/Logout";
option.ExpireTimeSpan = TimeSpan.FromDays(10);
});
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer=true,
ValidateAudience=false,
ValidateLifetime=true,
ValidateIssuerSigningKey=true,
ValidIssuer= "http://192.168.1.150:8082",
IssuerSigningKey=new SymmetricSecurityKey(Encoding.UTF8.GetBytes("OurVerifyTopLearn")
)
};
});
services.AddCors(options =>
{
options.AddPolicy("EnableCors", builder =>
{
builder/*.AllowAnyOrigin()*/
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials()
.Build();
});
});
#endregion
}
سلام مجدد دوست من وقت بخیر
دوست عزیزم شما jwt داخل پروژه استفاده میکنید؟ ایا api دارید داخل سایتتون؟