Portal ogłoszeniowy w .NET

Portal ogłoszeniowy w .NET
RX
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Tworzę pierwszą aplikację w .NET (portal z ogłoszeniami). Mam taki problem, chciałbym, żeby niezalogowany użytkownik mógł tylko przeglądać stronę, a nie tak, że może usuwać ogłoszenia itd.
Projekt jest na gicie, ale zalecałbym pobrać z dysku google, bo może nie zadziałać. Był problem z wrzuceniem projektu na git.
screenshot-20220606173601.png

Proszę o pomoc, jakąś wskazówkę.
https://github.com/netbp/ASP6mvc

S9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 123
2

Najprościej w widoku renderujesz tylko konkretne elementy dla zalogowanych użytkowników

Kopiuj

@if (Request.IsAuthenticated)
{
    <h1>Render me</h1>
}

RX
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

@sharper_99:
Mógłby Pan napisać prościej? Jestem kompletnym laikiem, i nie za bardzo wiem o co chodzi..

RX
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0
sharper_99 napisał(a):

Najprościej w widoku renderujesz tylko konkretne elementy dla zalogowanych użytkowników

Kopiuj

@if (Request.IsAuthenticated)
{
    <h1>Render me</h1>
}

Zrobiłem tak, teraz po kliknięciu w jakąś opcję, przenosi do logowania. Niby lepiej, ale średnio nadal. Cóż, może zostawię, jak się nie uda czegoś wykombinować.

Kopiuj
// POST: Offers/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
if (_context.Offers == null)
{
return Problem("Entity set 'ApplicationDbContext.Offers' is null.");
}
var offers = await _context.Offers.FindAsync(id);
if (offers != null)
{
_context.Offers.Remove(offers);
}

await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}

private bool OffersExists(int id)
{
return (_context.Offers?.Any(e => e.Id == id)).GetValueOrDefault();
}

Może mi jeszcze podpowiecie, teraz jako niezalogowany nie usunę ogłoszenia, ALE jako zalogowany mogę usuwać swoje i obce. Co zrobić, żeby nie dało się czyichś usuwać?

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
0

Gdzieś w tym kodzie który wrzuciłeś, w okolicy 11-13 linijki musisz zrobić sprawdzenie - jeśli zapisany właściciel offers nie jest aktualnie zalogowanym użytkownikiem to nie rób _context.Offers.Remove(offers);, tylko np. przekieruj go do strony błędu.

ZD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2310
2
rm.xms napisał(a):

Mógłby Pan napisać prościej? Jestem kompletnym laikiem, i nie za bardzo wiem o co chodzi..

Po prostu to nie ten zamiar na ten czas i te kwalifikacje.
"Królu, w geometrii nie ma drogi specjalnej dla królów"

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.