1. 程式人生 > 其它 >.NET CORE Authentication Authorization .NET CORE 鑑權

.NET CORE Authentication Authorization .NET CORE 鑑權

專案實戰

展現效果

前端:

index.html 檔案

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>深華建設</title>
    <link rel="stylesheet" href="css/index.css">
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="http://at.alicdn.com/t/font_3386213_idxib04xvx.css">
    <link rel="stylesheet" href="http://at.alicdn.com/t/font_3386213_ovriqlabk7.css">
</head>
<body>
<!--header start-->
<!--header 頭部-->
    <div class="header">
    <!--header-content 頭部內容-->
        <div class="header-content">
            <h1 class="logo">
            <!--javascript:void(0) 空連結  logo-title 標題-->
                <a href="javascript:void (0)" class="logo-title"></a>
            </h1>
            <ul class="menu">
                <li class="active"><a href="javascript:void (0)">首頁</a></li>
                <li><a href="javascript:void (0)">公開課堂</a></li>
                <li><a href="javascript:void (0)">VIP課堂</a></li>
                <li><a href="javascript:void (0)">搜尋</a></li>
            </ul>
        <!--登入、註冊-->
            <div class="logo-box">
                <i class="iconfont icon-denglu"></i>
                <span><a href="註冊.html">註冊&ensp;/&ensp;</a></span>
                <span><a href="登入.html">登入</a></span>
            </div>
        </div>
    </div>
<!--header end-->

<!--body start-->
    <div class="main">
        <div class="main-box clearfix">
<!--            主體左邊區域-->
            <div class="main-left">
<!--            輪播圖-->
                <div class="banner">
        <ul class="pic">
            <!-- javascript:void(0) 空連結-->
            <li><a href="javascript:void(0)"><img src="images/1.jpg" alt=""></a></li>
            <li><a href="javascript:void(0)"><img src="images/2.jpg" alt=""></a></li>
            <li><a href="javascript:void(0)"><img src="images/3.jpg" alt=""></a></li>
            <li><a href="javascript:void(0)"><img src="images/4.jpg" alt=""></a></li>
        </ul>
        <ul class="tab">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <ul class="btn">
            <li class="left"><i class="iconfont icon-icon-test"></i></li>
            <li class="right"><i class="iconfont icon-icon-test1"></i></li>
        </ul>
    </div>
            </div>
<!--            主體右邊區域-->
            <div class="main-right"></div>
        </div>
    </div>
<!--body end-->

<!--footer start-->
    <div class="footer">
        <div class="footer-box">
            <div class="footer-content">
                <p>
                    <span><a href="#">關於python</a></span>&ensp;|&ensp;
                    <span><a href="#">python爬蟲</a></span>&ensp;|&ensp;
                    <span><a href="#">Django框架</a></span>&ensp;|&ensp;
                    <span><a href="#">結構與演算法</a></span>&ensp;|&ensp;
                    <span><a href="#">機器學習</a></span>&ensp;|&ensp;
                    <span><a href="#">關於我:<i class="iconfont icon-weixin1"></i>&ensp;豬腩肉</a></span>
                </p>
                <p><a href="#">地址:廣州市天河區科華街251號樂天創意園A3棟2層A2020.&ensp;聯絡方式:020-38803244</a></p>
            </div>
        </div>
        <div class="bottom-content">
            <p>
                Copyright © 2022 深華建設(深圳)股份有限公司第一分公司 版權所有
            </p>
        </div>
    </div>
<!--footer end-->
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
    <script src="js/index.js"></script>
</body>
</html>

註冊.html 檔案

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>註冊頁面</title>
    <style>
        /*清空瀏覽器內外邊距*/
        *{
            /*清空外邊距*/
            margin: 0;
            /*清空內邊距*/
            padding: 0;
        }
        div{
            width: 500px;
            height: 500px;
            /*邊框設定:寬度2px 實線 灰色*/
            border: 2px solid gray;
            /*外邊距居中*/
            margin: auto;
            /*內邊距:上10 右20 下10 左20 */
            padding: 10px 20px 10px 20px;
        }
        /*分界線*/
        div p{
            /*外邊框底部,下邊框*/
            border-bottom: 2px solid gray;
            /*內邊框底部*/
            padding-bottom: 8px;
        }
        /*設定字型 字型的下邊框*/
        div p span {
            /*字型大小*/
            font-size: 18px;
            /*字型加粗*/
            font-weight: bold;
            border-bottom: 4px solid purple;
            padding: 0 0 2px 0;
        }
        /*操作a標籤*/
        div p a{
            /*浮動*/
            float: right;
            color: aqua;
            /*去除a標籤下劃線*/
            text-decoration: none;
        }
        /*表單*/
        div form input{
            width: 480px;
            height: 40px;
            /*外邊距*/
            margin: 10px 0 10px 0;
            /*內邊距*/
            padding: 0 10px 0 10px;
            /*邊框圓角*/
            border-radius: 5px;
            /*字型*/
            font-size: 18px;
            /*邊框*/
            border: 1px solid gray;
        }
        .msg{
            width: 300px;
        }
        div form a{
            /*轉換塊級元素*/
            display: block;
            /*邊框*/
            border: 1px solid gray;
            /*圓角*/
            border-radius: 5px;
            width: 160px;
            height: 40px;
            /*文字居中*/
            text-align: center;
            /*去除下劃線*/
            text-decoration: none;
            /*文字垂直居中*/
            line-height: 40px;
            color: purple;
            /*往右浮動*/
            float: right;
            /*上外邊距*/
            margin-top: 10px;
        }
        div form #box{
            background-color: dodgerblue;
            border: 1px solid gray;
            width: 500px;
            height: 50px;
            font-size: 20px;
            color: white;
        }
    </style>
</head>
<body>
    <div>
        <p>
            <span>請註冊</span>
            <a href="#">立即登入 ></a>
        </p>
        <form action="">
            <input type="text" placeholder="請輸入手機號"><br>
            <input class="msg" type="text" placeholder="請輸入簡訊驗證碼"><a href="#">傳送驗證碼</a><br>
            <input type="text" placeholder="請輸入使用者名稱"><br>
            <input type="password" placeholder="請輸入密碼"><br>
            <input type="password" placeholder="請再次輸入密碼"><br>
            <input class="msg" type="text" placeholder="請輸入圖形驗證碼"><a href="#">獲取圖片驗證碼</a><br>
            <input id="box" type="submit" value="立即註冊">
        </form>
    </div>
</body>
</html>

登入.html 檔案

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登入頁面</title>
    <link rel="stylesheet" href="reset.css">
    <style>
        div{
            width: 500px;
            height: 500px;
            border: 2px solid gray;
            /*外邊距居中*/
            margin: auto;
            /*內邊距*/
            padding: 10px 20px 10px 20px;
        }
        /*分界線*/
        div p{
            /*下邊框*/
            border-bottom: 2px solid gray;
            /*下內邊距*/
            padding-bottom: 8px;
        }
        /*“請登入”設定*/
        div p span{
            /*字型大小*/
            font-size: 18px;
            /*字型加粗*/
            font-weight: bold;
            /*下邊框*/
            border-bottom: 4px solid purple;
            /*內邊距*/
            padding-bottom: 1px;
        }
        /*“立即註冊”設定*/
        div p a{
            /*右浮動*/
            float: right;
            /*去除下劃線*/
            text-decoration: none;
            /*字型顏色*/
            color: cyan;
        }
        /*輸入框設定*/
        div form input{
            width: 480px;
            height: 40px;
            /*外邊距*/
            margin: 10px 0 10px 0;
            /*內邊距*/
            padding: 0 10px 0 10px;
            /*字型大小*/
            font-size: 18px;
            /*圓角*/
            border-radius: 5px;
            /*邊框*/
            border: 1px solid gray;
        }
        /*“忘記密碼”設定*/
        div form a{
            /*右浮動*/
            float: right;
            /*去除下劃線*/
            text-decoration: none;
            /*轉換塊級元素*/
            display: block;
            /*字型顏色*/
            color: cyan;
            /*外邊距*/
            margin: 10px 0 10px 0;
        }
        /*自動登入設定*/
        div form #dl{
            width: 16px;
            height: 16px;
            /*外邊距*/
            margin: 10px 0 10px 0;
        }
        div form .box{
            /*背景顏色*/
            background-color: dodgerblue;
            /*邊框*/
            border: 1px solid gray;
            height: 50px;
            /*字型大小*/
            font-size: 20px;
            /*字型顏色*/
            color: white;
        }
    </style>
</head>
<body>
    <div>
<!--盒子裡可以放任意的標籤-->
        <p>
            <span>請登入</span><a href="#">立即註冊 > </a>
        </p>
<!--資訊最終需要提交到後端,故使用表單-->
        <form action="">
            <input type="text" placeholder="請輸入手機號"><br>
            <input type="password" placeholder="請輸入密碼"><br>
            <input id="dl" type="checkbox">七天自動登入
            <a href="#">忘記密碼?</a><br>
            <input class="box" type="submit" value="登入">
        </form>
    </div>
</body>
</html>

CSS 檔案

index.css 檔案

/* header start */
.header{
    /*跟瀏覽器大小*/
    width: 100%;
    height: 70px;
    background-color: black;
}

.header .header-content{
    width: 1200px;
    height: 70px;
    /*居中*/
    margin: auto;
    /*垂直居中*/
    line-height: 70px;
    background-color: #333333;
}

.header .header-content .logo{
    width: 235px;
    height: 65px;
    float: left;
}

.header .header-content .logo .logo-title{
    /*轉換成塊級元素*/
    display: block;
    width: 100%;
    height: 100%;
    /* no-repeat 不平鋪*/
    background: url("https://www.python.org/static/img/python-logo.png") no-repeat;
}

.header .header-content .menu{
    float: left;
    margin-left: 150px;
}

.header .header-content .menu li{
    float: left;
    height: 70px;
}

.header .header-content .menu li a{
    padding: 0 30px;
    font-size: 18px;
}

/*偽類選擇器*/
.header .header-content .menu li:hover{
    border-bottom: 5px solid aqua;
    /*在指定的盒子內操作,不會超過盒子大小*/
    box-sizing: border-box;
}

/*選擇啟用的樣式,當你點選一個連結的時候讓它變成一個活動連結*/
/* 一進網頁,預設在首頁 */
.header .header-content .menu .active{
    border-bottom: 5px solid aqua;
    box-sizing: border-box;
}

/*圖示設定*/
.header .header-content .logo-box{
    float: right;
    margin-right: 20px;
}

.header .header-content .logo-box i{
    font-size: 35px;
    color: aqua;
    /*垂直對齊*/
    vertical-align: -6px;
    margin-right: 10px;
}
/*header end*/

/* body start */
.main{
    width: 100%;
    padding: 30px 0;
}
.main .main-left{
    width: 1200px;
    height: 600px;
    margin: auto;
    background-color: #dddddd;
}

/*輪播圖 start*/
/*調整div*/
.banner{
    width: 800px;
    height: 400px;
    /*border: 1px solid red;*/
    /*相對定位*/
    position: relative;
}
/*調整li標籤*/
.banner .pic li{
    /*絕對定位*/
    position: absolute;
    left: 0;
    top: 0;
}
/*調整圖片*/
.banner .pic img{
    width: 800px;
    height: 400px;
}
/*調整圖片下的顯示點*/
.banner .tab{
    /*絕對定位*/
    position: absolute;
    /*下邊框*/
    bottom: 10px;
    /*左邊框居中*/
    left: 50%;
    width: 200px;
    /*左外邊框往左移*/
    margin-left: -64px;
    height: 50px;
}
/*圖片顯示小圓點設定*/
.banner .tab li{
    border: 1px solid mediumblue;
    width: 20px;
    height: 20px;
    float: left;
    border-radius: 50%;
    margin-left: 10px;
}
.banner .tab li.on{
    background-color: blue;
}
/*箭頭標籤設定*/
.banner .btn li i{
    /*絕對定位*/
    position: absolute;
    font-size: 100px;
    top: 50%;
    margin-top: -50px;
    color: white;
    /*隱藏*/
    display: none;
}
/* hover 懸停*/
.banner:hover .btn li i{
    display: block;
}
/*左箭頭*/
.banner .btn li.left i{
    left: 0;
}
/*右箭頭*/
.banner .btn li.right i{
    right: 0;
}
/*輪播圖 end*/

/*body end*/

/* footer start */
.footer{
    width: 100%;
    background-color: black;
}
.footer .footer-box{
    width: 1200px;
    margin: auto;
    background-color: #333333;
    text-align: center;
    color: white;
}
.footer .footer-box .footer-content{
    line-height: 40px;
    font-size: 16px;
    padding: 15px 0;
    background: url("https://www.python.org/static/img/python-logo.png") no-repeat;
}
.footer .bottom-content{
    text-align: center;
    line-height: 50px;
    color: wheat;
}
.footer .bottom-content p{
    width: 1200px;
    margin: auto;
}
/* footer end */

reset.css 檔案

/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

.clearfix:after{
	content: '';
	display: block;
	clear: both;
}

/*解決浮動塌陷問題 裡面的屬性和屬性值也是規定的*/
.ul:after{
	content: "";
	/*轉換成塊級元素*/
	display: block;
	/*清除所有的浮動*/
	clear: both;
}

a{
	/*去掉下劃線*/
	text-decoration: none;
	/*字型顏色*/
	color: wheat;
}

後端:

index.js 檔案

// 獲取圖片
var pic = $('.banner .pic li')
// 獲取小圓點
var tab = $('.banner .tab li')
// 獲取箭頭
var btn = $('.banner .btn li')

// 獲取圖片長度
var len = pic.length

// 預設第一張圖片
var first = 0

// 初始化
// 第一個小圓點變色
tab.eq(0).addClass('on')
// 第一張圖片顯示,其他圖片隱藏
pic.hide().eq(0).show()

// 變化函式
function change(n) {
    // 如果是之前的照片,那就去除樣式,進行隱藏
    tab.eq(first).removeClass('on')
    // fadeOut(1000) 一秒後隱藏 第一張圖片
    pic.eq(first).fadeOut(1000)
    first = n
    // 如果是新的圖片,那就新增樣式,顯示圖片
    tab.eq(first).addClass('on')
    pic.eq(first).fadeIn(1000)
}

// 圓點方法
tab.click(function () {
    // 點選的是第一個小圓點,則不用頁面跳轉
    var x = $(this).index()
    if (x!=first){
        // 呼叫變化函式
        change(x)
    }
})

// 箭頭方法
btn.click(function () {
    var x = first
    if ($(this).index()){
        x++
        if (x>len-1){
            x=0
        }
    }else {
        x--
        if (x<0){
            x = len-1
        }
    }
    // 呼叫變化函式
    change(x)
})

// 定時器 自動播放功能
auto()
function auto() {
    timer = setInterval(function () {
        var x = first
        x++
        // 在四張圖片中迴圈  %= 取餘
        x %= len   // 0%4 0 1%4 1 2%4 2 3%4 3 4%4 0
        change(x)
    },3000)
}

// 清除定時器 滑鼠劃入時
$('.banner').hover(function () {
    clearInterval(timer)
},auto)
```![](https://img2022.cnblogs.com/blog/2793439/202205/2793439-20220512112831715-1765305895.png)