一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

基于DotNetOpenAuth的OAuth實現(xiàn)示例代碼: 獲取access token

 ThinkTank_引擎 2015-12-17

1. 場景

根據(jù)OAuth 2.0規(guī)范,該場景發(fā)生于下面的流程圖中的(D)(E)節(jié)點,根據(jù)已經(jīng)得到的authorization code獲取access token。

 

2. 實現(xiàn)環(huán)境

DotNetOpthAuth v5.0.0-alpha3, ASP.NET MVC 5, .NET Framework 4.5.1。

2. 主要實現(xiàn)示例代碼

2.1. Authorization Server實現(xiàn)代碼

2.1.1. ASP.NET MVC Controller實現(xiàn)代碼

復制代碼
using System.Threading.Tasks;
using System.Web.Mvc;
using CNBlogs.Open.Domain.Entities.OpenAuth;
using DotNetOpenAuth.OAuth2;
using DotNetOpenAuth.Messaging;

namespace CNBlogs.Open.Web.Controllers
{
    public class OAuthController : Controller
    {
        public async Task<ActionResult> Token()
        {
            var authServer = new AuthorizationServer(new AuthorizationServerHost());
            var response = await authServer.HandleTokenRequestAsync(Request);
            return response.AsActionResult();
        }
    }
}
復制代碼

2.1.2. IAuthorizationServerHost接口實現(xiàn)

需要實現(xiàn)IsAuthorizationValid與CreateAccessToken這兩個方法,實現(xiàn)代碼如下:

復制代碼
public class AuthorizationServerHost : IAuthorizationServerHost
{
     public bool IsAuthorizationValid(IAuthorizationDescription authorization)
    {
        return authorization.ClientIdentifier == "webclientdemo"
            && ClientIdentifier.;
    }
    public AccessTokenResult CreateAccessToken(IAccessTokenRequest accessTokenRequestMessage)
    {
        var accessToken = new AuthorizationServerAccessToken
        {
            Lifetime = TimeSpan.FromHours(10),
            SymmetricKeyStore = this.CryptoKeyStore,
        };
        var result = new AccessTokenResult(accessToken);
        return result;
    }
}
復制代碼

2.2 Client實現(xiàn)代碼

復制代碼
namespace OAuthWebClient.Controllers
{
    public class OAuthController : Controller
    {
        private static readonly string CLIENT_ID = "webclientdemo";

        public async Task<ActionResult> Redirect(string code)
        {
            var httpClient = new HttpClient();
            var queryDict = new Dictionary<string, string>
            {
                {"grant_type", "authorization_code"},
                {"code", code},
                {"redirect_uri", Request.Url.Scheme + "://" + 
                    Request.Url.Host + Request.Url.AbsolutePath},
                {"client_id", CLIENT_ID},
                {"client_secret", "webclientdemosecret"}
            };

            var httpContent = new FormUrlEncodedContent(queryDict);
            var response = await httpClient.PostAsync(Request.Url.Scheme + 
                "://open.cnblogs.com/oauth/token", httpContent);

            return Content(await response.Content.ReadAsStringAsync());
        }
    }
}
復制代碼

考慮到跨平臺訪問的方便性,未使用DotNetOpenAuth.OAuth2.WebServerClient。 

3. 參考資料:

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美午夜一级艳片免费看| 爽到高潮嗷嗷叫之在现观看| 日韩欧美精品一区二区三区| 激情三级在线观看视频| 欧美乱妇日本乱码特黄大片| 1024你懂的在线视频| 视频在线观看色一区二区| 久久精品伊人一区二区| 国产成人精品久久二区二区| 青青久久亚洲婷婷中文网| 国产女性精品一区二区三区| 好吊一区二区三区在线看| 国产成人精品在线一区二区三区| 日本免费一本一二区三区| 人妻熟女中文字幕在线| 丰满人妻一二三区av| 性欧美唯美尤物另类视频| 色鬼综合久久鬼色88| 九九热精品视频免费在线播放| 国产成人精品99在线观看| 国产一区麻豆水好多高潮| 天海翼精品久久中文字幕| 成人精品日韩专区在线观看| 亚洲视频一区二区久久久| 亚洲国产av精品一区二区| 亚洲一区二区三区免费的视频| 久久精品一区二区少妇| 超薄丝袜足一区二区三区| 日韩在线视频精品中文字幕| 日韩国产传媒在线精品| 久久免费精品拍拍一区二区| 欧美美女视频在线免费看| 国产一级特黄在线观看| 日韩成人午夜福利免费视频| 一区二区三区精品人妻| 丝袜av一区二区三区四区五区 | 又色又爽又黄的三级视频| 欧美大黄片在线免费观看| 国产精品亚洲综合天堂夜夜| 亚洲精品偷拍视频免费观看| 亚洲国产av精品一区二区|