ASP.NET ZERO 學習 —— (4) 開發手冊之AccountController

Account Controller

AccountController 提供了登錄,註冊,忘記密碼和郵箱驗證的頁面。

佈局

賬號管理頁面的佈局在 View/Account 文件夾下的 _Layout 視圖文件中。

這裏寫圖片描述

登錄

AccountController的主視圖是登錄頁:

這裏寫圖片描述

第一個填寫的是 租戶名稱,它只有將應用設置爲多租戶模式時纔會被顯示出來。數據庫初始化時,爲創建一個 default 的租戶。若作爲應用程序管理員登錄,則不需要填寫租戶名稱。

你可以使用 admin 用戶及 123qwe 密碼進行管理員登錄。當你第一次登錄的時候,你需要修改你的管理員密碼,因爲 123qwe 不是非常安全。

這裏寫圖片描述

更改密碼後將會跳轉至 Angular 應用。

這裏寫圖片描述

第三方登錄

ASP.NET Zero提供第三方登錄。如要啓用它,需要修改web.config文件中的一下設置。

<add key="ExternalAuth.Facebook.IsEnabled" value="false" />
<add key="ExternalAuth.Facebook.AppId" value="" />
<add key="ExternalAuth.Facebook.AppSecret" value="" />

<add key="ExternalAuth.Twitter.IsEnabled" value="false" />
<add key="ExternalAuth.Twitter.ConsumerKey" value="" />
<add key="ExternalAuth.Twitter.ConsumerSecret" value="" />

<add key="ExternalAuth.Google.IsEnabled" value="false" />
<add key="ExternalAuth.Google.ClientId" value="" />
<add key="ExternalAuth.Google.ClientSecret" value="" />
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

你可以部分啓用然後配置相應的第三方登錄選項。當你獲得第三方登錄的 API Key 時,將其填充在 web.config對應的位置。啓用後,在登錄頁像下圖那樣顯示:

這裏寫圖片描述

然後你可以點擊相應的第三方圖標登錄你已有的賬號。查看 Starup 類哪裏使用了配置項,你可以添加更多的第三方登錄選項。

            if (IsTrue("ExternalAuth.Facebook.IsEnabled"))
            {
                app.UseFacebookAuthentication(CreateFacebookAuthOptions());
            }

            if (IsTrue("ExternalAuth.Twitter.IsEnabled"))
            {
                app.UseTwitterAuthentication(CreateTwitterAuthOptions());
            }

            if (IsTrue("ExternalAuth.Google.IsEnabled"))
            {
                app.UseGoogleAuthentication(CreateGoogleAuthOptions());
            }

            if (IsTrue("ExternalAuth.WsFederation.IsEnabled"))
            {
                app.UseWsFederationAuthentication(CreateWsFederationAuthOptions());
            }

            if (IsTrue("ExternalAuth.OpenId.IsEnabled"))
            {
                app.UseOpenIdConnectAuthentication(CreateOpenIdOptions());
            }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

OPENID 連接登錄

除了第三方登錄,ASP.NET Zero 也集成了Openid 連接登錄。在web.config中進行配置

<add key="ExternalAuth.OpenId.IsEnabled" value="false" />
<add key="ExternalAuth.OpenId.Authority" value="" />
<add key="ExternalAuth.OpenId.ClientId" value="" />
<add key="ExternalAuth.OpenId.ClientSecret" value="" />
  • 1
  • 2
  • 3
  • 4

當啓用後也會在登錄頁面上顯示一個圖標。

ADFS 登錄

ADFS是另一個外部登錄方式。爲了配置ADFS登錄,需要在web.config中進行配置。

<add key="ExternalAuth.WsFederation.IsEnabled" value="false" />
<add key="ExternalAuth.WsFederation.MetaDataAddress" value="" />
<add key="ExternalAuth.WsFederation.Wtrealm" value="" />
  • 1
  • 2
  • 3

雙因素認證登錄

ASP.NET Zero已經提供了雙因素認證登錄,但是默認是禁用的。你可以在管理員設置頁面裏進行啓用:

這裏寫圖片描述

注意:在多租戶應用裏,只有在管理員設置中啓用的情況下,纔可以爲租戶提供雙因素身份驗證。另外,郵箱驗證和短信驗證設置僅在管理員界面中可用。

當它啓用後,當用戶輸入用戶名及密碼後會被詢問選擇一種驗證方式。

這裏寫圖片描述

然後會讓你輸入發送給你的驗證碼。

這裏寫圖片描述

郵箱驗證

驗證用戶的郵箱是否可用。由於在調試模式下禁用電子郵件發送,您可以在日誌中看到代碼。在發佈模式下,郵件將被髮送。

短信驗證

驗證用戶的手機號是否可用。請注意,短信發送沒有完全實現,因爲它需要集成一個SMS供應商。當前只是將安全代碼寫入日誌。你可以完善 IdentitySmsMessageService 類來實現短信發送功能。否則,禁用短信驗證功能。

用戶鎖定

如前面所示,你可以設置用戶鎖定的配置。當用戶輸入指定的次數和持續時間的錯誤密碼時,將被鎖定。

註冊

當在登陸頁面點擊註冊時,將會顯示註冊頁面

如果是多租戶模式,用戶可以註冊,成爲一個租戶的用戶。如果是單租戶模式,那麼租戶名稱將不會被顯示。

這裏寫圖片描述

驗證碼(安全問題)是可選的。這裏用的是Google的驗證碼服務,它爲每一個域名單獨提供服務。因此,要使它正常工作,你應該在https://www.google.com/recaptcha爲您的域創建你自己的私人和公共密鑰,並替換web.config文件中的配置項。

郵箱驗證

當用戶提交註冊信息後,會通過郵件發送一個驗證碼至用戶註冊信息中填的郵箱地址。如果用戶因爲某些原因未能收到郵件,可以通過點擊發送激活郵件重新發送郵箱驗證碼。

這裏寫圖片描述

同樣,如果是單租戶模式,那麼租戶名稱將不會被顯示或者租戶名通過子域名的方式得知(例如:tenancyname.mydomian.com)。

忘記密碼

如果用戶忘記了自己的密碼,可以通過點擊“忘記密碼”鏈接,然後會發送一封郵件讓你重設密碼。

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章