發表日期:2019-04 文章編輯:小燈 瀏覽次數:3136
有時候我們需要網站用戶登錄后可以給出一些友好提示,比如類似pageadmin主站用戶登錄后提示,您好,某某,以此為例演示一下如何獲取到用戶登錄狀態。
由于V4版本登錄使用了單點登錄,所以通過ajax jsonp的方式去獲取數據是最好的方式,既然需要ajax請求,那么就需要有一個請求文件,請求文件可以用自定義文件新建(ashx或aspx都可以),參考創建自定義文件教程。
1、下面在站點模板目錄下新建一個GetCurrentUser.cshtml的模板文件(保存為utf8格式),內容如下:
@{? ????Layout?=?null; ????string?userName?=?""; ????string?userToken?=?Request.QueryString["userToken"]; ????WebApiHelper?webApiHelper?=?new?WebApiHelper(); ????Dictionary<string,?string>?dictionary?=?new?Dictionary<string,?string>(); ????dictionary.Add("userToken",?userToken); ????dictionary.Add("ip",?StringHelper.GetIP()); ????dictionary.Add("method",?"Member.Account.GetCurrentUser"); ????string?result?=?webApiHelper.Get(dictionary); ????if?(!string.IsNullOrEmpty(result)) ????{ ????????CurrentUser?user?=?JsonHelper.DeserializeObject<CurrentUser>(result); ????????if?(user?!=?null) ????????{ ????????????userName?=?user.UserName; ????????} ????} } @if?(!string.IsNullOrEmpty(userName)) { ????<a?href="http://u.pageadmin.net/"?class="denglu"?title="進入會員中心"?target="_blank">你好,@userName</a> } else { ????Response.Clear(); ????Response.End(); }
原理就是,獲取到UserToken參數,通過系統內置的的api去獲取用戶名,代碼中的CurrentUser是一個類,包含UserName,Uid,MemberGroupId,DepartmentId,Email,Mobile這幾個重要參數,可根據實際需求獲取。
2、然后在自定義路由配置文件中新建一個配置節點
??<route?urlConstraint="^Common/GetCurrentUser/$"??viewPath="Common/GetCurrentUser.cshtml"?httpcacheSolutionId="0"?columnId="0"?title=""></route>
GetCurrentUser.cshtml放在Common目錄下,請求url規則為Common/GetCurrentUser/。
3、在模板中可以通過json的方式請求數據。
<div?id="loginBox"> <a?href="http://u.pageadmin.net/Login/"?class="denglu"?target="_blank">登錄</a><a?href="http://u.pageadmin.net/Reg"?class="zhuce"?target="_blank">注冊</a> </div> <script?type="text/javascript"> ????$(function?()?{ ????????$.ajax({ ????????????url:?"http://u.pageadmin.net/e/GetUserToken", ????????????type:?"GET", ????????????dataType:?"jsonp",?//指定服務器返回的數據類型 ????????????success:?function?(data)?{ ????????????????if?(data?!=?"")?{ ????????????????????$.get("/Common/GetCurrentUser/",?"userToken="?+?encodeURIComponent(data),?function?(data)?{ ????????????????????????if?(data?!=?"")?{ ????????????????????????????$("#loginBox").html(data); ????????????????????????} ????????????????????}); ????????????????} ????????????} ????????}); ????}); </script>
注:上面代碼中的http://u.pageadmin.net/改為你自己的會員中心域名。
日期:2019-04 瀏覽次數:3181
日期:2019-04 瀏覽次數:3163
日期:2019-04 瀏覽次數:3071
日期:2019-04 瀏覽次數:2894
日期:2019-04 瀏覽次數:2987
日期:2019-04 瀏覽次數:3143
日期:2019-04 瀏覽次數:3087
日期:2019-04 瀏覽次數:3351
日期:2019-04 瀏覽次數:3403
日期:2019-04 瀏覽次數:3046
日期:2019-04 瀏覽次數:3433
日期:2019-04 瀏覽次數:2846
日期:2019-04 瀏覽次數:2986
日期:2019-04 瀏覽次數:3103
日期:2019-04 瀏覽次數:2952
日期:2019-04 瀏覽次數:3403
日期:2019-04 瀏覽次數:3317
日期:2019-04 瀏覽次數:2985
日期:2019-04 瀏覽次數:3216
日期:2019-04 瀏覽次數:3045
日期:2019-04 瀏覽次數:2811
日期:2019-04 瀏覽次數:3117
日期:2019-04 瀏覽次數:3012
日期:2019-04 瀏覽次數:3106
日期:2019-04 瀏覽次數:3065
日期:2019-04 瀏覽次數:2937
日期:2019-04 瀏覽次數:2788
日期:2019-04 瀏覽次數:2798
日期:2019-04 瀏覽次數:2868
日期:2019-04 瀏覽次數:2885
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.