分类

链接

2018 年 3 月
 1234
567891011
12131415161718
19202122232425
262728293031  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > .NET > 正文
共享办公室出租
asp.net mvc auth2.0简化版——客户端
.NET 暂无评论 阅读(479)
  1.  public partial class Login : Page
  2.     {
  3.         public string client_id = "123456789";
  4.         public string getCodeUrl = "http://localhost:8080/?client_id={0}>response_type={1}>redirect_uri={2}>scope={3}>state={4}";
  5.         public string getTokenUrl = "http://localhost:8080/Auth/Token?code={0}>grant_type={1}>client_id={2}";
  6.         public string getUserUrl = "http://localhost:8080/Auth/UserInfo?token={0}";
  7.         protected void Page_Load(object sender, EventArgs e)
  8.         {
  9.             string code = Request.QueryString["code"] ?? "";
  10.  
  11.             if (string.IsNullOrEmpty(code))
  12.             {
  13.                 //第一步,请求获取code(请求OAuth服务器)
  14.  
  15.                 string response_type = "code";
  16.                 string redirect_uri = HttpUtility.UrlEncode("http://localhost:9999/Account/Login.aspx");
  17.                 string scope = "";
  18.                 string state = "";
  19.  
  20.                 string url = string.Format(getCodeUrl, client_id, response_type, redirect_uri, scope, state);
  21.  
  22.                 Response.Redirect(url);
  23.             }
  24.             else
  25.             {
  26.                
  27.  
  28.                 //第二步,获取code之后请求获取token(请求OAuth服务器)
  29.                 WebClient web = new WebClient();
  30.                 web.Encoding = Encoding.UTF8;
  31.  
  32.                 var url = string.Format(getTokenUrl, code, "authorization_code", client_id);
  33.                 var token = web.DownloadString(url).Replace("\"","");;
  34.  
  35.                 //第三部,获取token之后,获取user信息(请求OAuth服务器)
  36.                 url = string.Format(getUserUrl, token);
  37.                 var userinfo = web.DownloadString(url);
  38.  
  39.                 //把CODE保存下来
  40.                 var cookie = new HttpCookie("token");
  41.                 cookie.Value = HttpUtility.UrlEncode(token);
  42.                 cookie.Expires = DateTime.Now.AddHours(1);
  43.                 Response.Cookies.Add(cookie);
  44.  
  45.  
  46.                 var cookie1 = new HttpCookie("code");
  47.                 cookie1.Value = HttpUtility.UrlEncode(code);
  48.                 cookie1.Expires = DateTime.Now.AddHours(1);
  49.                 Response.Cookies.Add(cookie1);
  50.  
  51.                 //返回获取到的用户信息
  52.                 //return this.Json("userInfoContent=" + userInfoContent, JsonRequestBehavior.AllowGet);
  53.                 var cookie2 = new HttpCookie("user");
  54.                 cookie2.Value =  HttpUtility.UrlEncode(userinfo);
  55.                 cookie2.Expires = DateTime.Now.AddHours(1);
  56.                 Response.Cookies.Add(cookie2);
  57.  
  58.  
  59.                 Response.Redirect("/");
  60.  
  61.             }
  62.         }
  63.     }

 

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:asp.net mvc auth2.0简化版——客户端 | Bruce's Blog

发表评论

留言无头像?