1- @{
2- ViewData [" Title" ] = " Demo" ;
3-
4- var versionNumber = System .Reflection .Assembly .GetEntryAssembly ().GetName ().Version ;
5- }
6-
7- <h2 title =" Myvas.AspNetCore.Authentication.Demo" >@ViewData ["Title"] <small >@( versionNumber ) </small ></h2 >
8-
9- <p >这是一组github开源项目的演示网站。本网站源代码在此:<a href =" https://github.com/myvas/AspNetCore.Authentication.Demo.git" >Myvas.AspNetCore.Authentication.Demo</a ></p >
10- <ul >
11- <li >WeixinOpen (open.weixin.qq.com)</li >
12- <li >WeixinAuth (mp.weixin.qq.com)</li >
13- <li >QQConnect (connect.qq.com)</li >
14- </ul >
15-
16- <h3 >部署环境</h3 >
17- <p >本程序部署在Debian.10-x64服务器上。</p >
18- <p ><strong >注意:</strong >本程序必须部署公网服务器80端口上,并在相应微信公众号上配置好“网页服务/网页授权获取用户基本信息”才能正常工作。</p >
19- <hr />
20- <h3 >触发身份验证</h3 >
21- <p >(1)点击<a asp-action =" UserInfo" >UserInfo</a >触发Challenge进入登录页面。</p >
22- <p >--- 或 ---</p >
23- <p >(2)点击<a asp-action =" ShowQrcode" asp-route-redirectUrl =" @Url.AbsoluteAction(" UserInfo " ," Home " )" >这里</a >展示一个网址二维码,用手机扫码进入。</p >
24- <p >--- 或 ---</p >
25- (3)直接扫码进入微信公众号测试,然后点击菜单[UserInfo]
26- <p >
27- <img src =" ~/img/mp-test.jpg" height =" 200" />
28- <div class =" help-block" >(注:以上微信公众号的源码在<a href =" https://github.com/myvas/Weixin" >Myvas.AspNetCore.Weixin</a >,其<a href =" http://wx.myvas.com" >Demo程序</a >可以修改这些菜单)</div >
29- </p >
30- <hr />
31-
32- <h3 >一、<a href =" https://connect.qq.com" >QQ开放平台</a >-网站接入QQ登录</h3 >
33- <p >此方式<strong >须</strong >将网站接入到QQ开放平台。</p >
34- <p >
35- 通常的应用场景是:<br />
36- 1.用户在PC或平板电脑上打开您的网站上某个需要身份验证的网页;<br />
37- 2.网站系统[Authorize]发现该用户尚未登录,于是显示登录页面;<br />
38- 3.用户点击QQ登录图标,用手机QQ扫码,或直接输入QQ账户密码登入;<br />
39- 4.网站系统继续打开目标网页,显示给用户。
40- </p >
41-
42- <h3 >二、<a href =" https://open.weixin.qq.com" >微信开放平台</a >-网站接入微信登录</h3 >
43- <p >此方式<strong >无须</strong >用户预先关注您的微信公众号。</p >
44- <p >
45- 通常的应用场景是:<br />
46- 1.用户在PC或平板电脑上打开您的网站上某个需要身份验证的网页;<br />
47- 2.网站系统[Authorize]发现该用户尚未登录,于是显示登录页面;<br />
48- 3.用户选择扫码方式登录,掏出手机扫码;<br />
49- 4.网站系统继续打开目标网页,显示给用户。
50- </p >
51- <p >在登录页面,选择【WeixinOpen】方式登录。</p >
52-
53- <h3 >三、<a href =" https://mp.weixin.qq.com" >微信公众平台</a >-微信内网页授权</h3 >
54- <p >此方式<strong >必须</strong >用户预先关注您的微信号。</p >
55- <p >
56- 通常的应用场景是:<br />
57- 0.用户已经关注了您的微信公众号;<br />
58- 1.用户使用手机微信进入您的微信公众号,点击某菜单;<br />
59- 2.微信公众号服务程序[Authorize]发现该用户尚未登录,于是跳转到登录页面;<br />
60- 3.登录页面发现用户终端是微信客户端,于是直接执行ExternalLogin方法Challenge:WeixinOAuth身份验证;<br />
61- 4*.是否需要用户微信确认;(默认options.SilentMode=true,即不附加snsapi_userinfo)<br />
62- 5.腾讯服务器回调ExternalLoginCallback方法,微信公众号服务程序匹配系统用户,身份验证通过,将目标网页显示给用户。
63- </p >
64-
65- <hr />
66- <h3 >用到的其他组件</h3 >
67- <dl >
68- <dt ><a href =" https://github.com/myvas/TencentSms" >Myvas.AspNetCore.TencentSms</a ></dt >
69- <dd >腾讯云短信:发送短信验证码。</dd >
70- <dt ><a href =" https://github.com/myvas/ViewDivert" >Myvas.AspNetCore.ViewDivert</a ></dt >
71- <dd >检测微信客户端:在Account/Login中检测客户端,如果是微信客户端则直接使用WeixinAuth身份验证,否则触发标准Identity登录网页。</dd >
72- </dl >
73-
74- <footer class =" border-top card-footer text-muted" >
75- <div class =" container" >© ; 2004-2019 Myvas.AspNetCore.Authentication.Demo [Powered by <a href =" http://gingcin.com " title = " Gingcin Consulting LLC " >Gingcin </a >] </div >
1+ @{
2+ ViewData [" Title" ] = " Demo" ;
3+
4+ var versionNumber = System .Reflection .Assembly .GetEntryAssembly ().GetName ().Version ;
5+ }
6+
7+ <h2 title =" Myvas.AspNetCore.Authentication.Demo" >@ViewData ["Title"] <small >@( versionNumber ) </small ></h2 >
8+
9+ <p >这是一组github开源项目的演示网站。本网站源代码在此:<a href =" https://github.com/myvas/AspNetCore.Authentication.Demo.git" >Myvas.AspNetCore.Authentication.Demo</a ></p >
10+ <ul >
11+ <li >WeixinOpen (open.weixin.qq.com)</li >
12+ <li >WeixinAuth (mp.weixin.qq.com)</li >
13+ <li >QQConnect (connect.qq.com)</li >
14+ </ul >
15+
16+ <h3 >部署环境</h3 >
17+ <p >本程序部署在Debian.10-x64服务器上。</p >
18+ <p ><strong >注意:</strong >本程序必须部署公网服务器80端口上,并在相应微信公众号上配置好“网页服务/网页授权获取用户基本信息”才能正常工作。</p >
19+ <hr />
20+ <h3 >触发身份验证</h3 >
21+ <p >(1)点击<a asp-action =" UserInfo" >UserInfo</a >触发Challenge进入登录页面。</p >
22+ <p >--- 或 ---</p >
23+ <p >(2)点击<a asp-action =" ShowQrcode" asp-route-redirectUrl =" @Url.AbsoluteAction(" UserInfo " ," Home " )" >这里</a >展示一个网址二维码,用手机扫码进入。</p >
24+ <p >--- 或 ---</p >
25+ (3)直接扫码进入微信公众号测试,然后点击菜单[UserInfo]
26+ <p >
27+ <img src =" ~/img/mp-test.jpg" height =" 200" />
28+ <div class =" help-block" >(注:以上微信公众号的源码在<a href =" https://github.com/myvas/Weixin" >Myvas.AspNetCore.Weixin</a >,其<a href =" http://wx.myvas.com" >Demo程序</a >可以修改这些菜单)</div >
29+ </p >
30+ <hr />
31+
32+ <h3 >一、<a href =" https://connect.qq.com" >QQ开放平台</a >-网站接入QQ登录</h3 >
33+ <p >此方式<strong >须</strong >将网站接入到QQ开放平台。</p >
34+ <p >
35+ 通常的应用场景是:<br />
36+ 1.用户在PC或平板电脑上打开您的网站上某个需要身份验证的网页;<br />
37+ 2.网站系统[Authorize]发现该用户尚未登录,于是显示登录页面;<br />
38+ 3.用户点击QQ登录图标,用手机QQ扫码,或直接输入QQ账户密码登入;<br />
39+ 4.网站系统继续打开目标网页,显示给用户。
40+ </p >
41+
42+ <h3 >二、<a href =" https://open.weixin.qq.com" >微信开放平台</a >-网站接入微信登录</h3 >
43+ <p >此方式<strong >无须</strong >用户预先关注您的微信公众号。</p >
44+ <p >
45+ 通常的应用场景是:<br />
46+ 1.用户在PC或平板电脑上打开您的网站上某个需要身份验证的网页;<br />
47+ 2.网站系统[Authorize]发现该用户尚未登录,于是显示登录页面;<br />
48+ 3.用户选择扫码方式登录,掏出手机扫码;<br />
49+ 4.网站系统继续打开目标网页,显示给用户。
50+ </p >
51+ <p >在登录页面,选择【WeixinOpen】方式登录。</p >
52+
53+ <h3 >三、<a href =" https://mp.weixin.qq.com" >微信公众平台</a >-微信内网页授权</h3 >
54+ <p >此方式<strong >必须</strong >用户预先关注您的微信号。</p >
55+ <p >
56+ 通常的应用场景是:<br />
57+ 0.用户已经关注了您的微信公众号;<br />
58+ 1.用户使用手机微信进入您的微信公众号,点击某菜单;<br />
59+ 2.微信公众号服务程序[Authorize]发现该用户尚未登录,于是跳转到登录页面;<br />
60+ 3.登录页面发现用户终端是微信客户端,于是直接执行ExternalLogin方法Challenge:WeixinOAuth身份验证;<br />
61+ 4*.是否需要用户微信确认;(默认options.SilentMode=true,即不附加snsapi_userinfo)<br />
62+ 5.腾讯服务器回调ExternalLoginCallback方法,微信公众号服务程序匹配系统用户,身份验证通过,将目标网页显示给用户。
63+ </p >
64+
65+ <hr />
66+ <h3 >用到的其他组件</h3 >
67+ <dl >
68+ <dt ><a href =" https://github.com/myvas/TencentSms" >Myvas.AspNetCore.TencentSms</a ></dt >
69+ <dd >腾讯云短信:发送短信验证码。</dd >
70+ <dt ><a href =" https://github.com/myvas/ViewDivert" >Myvas.AspNetCore.ViewDivert</a ></dt >
71+ <dd >检测微信客户端:在Account/Login中检测客户端,如果是微信客户端则直接使用WeixinAuth身份验证,否则触发标准Identity登录网页。</dd >
72+ </dl >
73+
74+ <footer class =" border-top card-footer text-muted" >
75+ <div class =" container" >© ; 2004-2020 我的虚拟应用服务网 <a href =" http://www.beian.miit.gov.cn/ " target = " _blank " rel = " nofollow " class = " text-muted " >粤ICP备17119791号 </a ></div >
7676</footer >
0 commit comments