1
Answer

Scheduling Background Jobs in ASP.NET Core Using Quartz.NET

Dhruv Rathod

Dhruv Rathod

10h
45
1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Structure for User
typedef struct {
    char username[50];
    char password[50];
    char role[10];  // Admin, User, or Guest
} User;

// Predefined users (In real systems, use a database)
User users[] = {
    {"admin", "admin123", "Admin"},
    {"user1", "user123", "User"},
    {"guest1", "guest123", "Guest"}
};
int user_count = 3;

User *logged_in_user = NULL;

// Function to authenticate user
int authenticate(char *username, char *password) {
    for (int i = 0; i < user_count; i++) {
        if (strcmp(users[i].username, username) == 0 && strcmp(users[i].password, password) == 0) {
            logged_in_user = &users[i];
            return 1;
        }
    }
    return 0;
}

// Function to check access permissions
int check_access(char *resource) {
    if (strcmp(logged_in_user->role, "Admin") == 0) {
        return 1;  // Admins can access all resources
    } 
    else if (strcmp(logged_in_user->role, "User") == 0 && strcmp(resource, "public") == 0) {
        return 1;  // Users can access public resources
    }
    else if (strcmp(logged_in_user->role, "Guest") == 0 && strcmp(resource, "guest") == 0) {
        return 1;  // Guests can access guest resources
    }
    return 0;
}

// Function to access resource
void access_resource(char *resource) {
    printf("\nAttempting to access: %s\n", resource);
    if (check_access(resource)) {
        printf("Access Granted to %s\n", resource);
    } else {
        printf("Access Denied to %s\n", resource);
    }
}

// Main Menu
void menu() {
    int choice;
    char resource[20];
    while (1) {
        printf("\n--- Access Control System ---\n");
        printf("1. Access Public Resource\n");
        printf("2. Access Admin Resource\n");
        printf("3. Access Guest Resource\n");
        printf("4. Logout\n");
        printf("Enter your choice: ");
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                access_resource("public");
                break;
            case 2:
                access_resource("admin");
                break;
            case 3:
                access_resource("guest");
                break;
            case 4:
                printf("Logging out...\n");
                logged_in_user = NULL;
                return;
            default:
                printf("Invalid choice!\n");
        }
    }
}

// Main Function
int main() {
    char username[50];
    char password[50];
    printf("--- Welcome to Access Control System ---\n");
    while (1) {
        printf("\nPlease Login:\n");
        printf("Username: ");
        scanf("%s", username);
        printf("Password: ");
        scanf("%s", password);

        if (authenticate(username, password)) {
            printf("\nLogin Successful! Welcome %s\n", logged_in_user->username);
            menu();
        } else {
            printf("Invalid Credentials!

 

Answers (1)
Next Recommended Forum