.net 4.0+ 應用接入openid Server步驟

.net 4.0+ 應用接入openid Server步驟:web

Requirements:Microsoft.AspNet.Mvc 5.2.4+api

 

1 確認應用是不是katana啓動(項目引用了owin,根目錄下有startup.cs)。服務器

若是不是katatna啓動:cookie

1.1 加入如下nuget包:mvc

// 依賴衆多app

Microsoft.Owin.Security.OpenIdConnectui

// 關鍵spa

Identitymodel.net

Microsoft.Owin.Security.Cookiescode

//iis用於owin startup 啓動

Microsoft.Owin.Host.SystemWeb

Kentor.OwinCookieSaver

 

1.2 項目根目錄下添加startup.cs。

若是Global.asax.cs項裏有webapi配置,移動到startup.cs裏的Configuration方法內:

[assembly: OwinStartup(typeof($yournamespace.Startup))]

namespace $yournamespace

{

    public class Startup

    {

        /// <summary>

        /// hack

        /// </summary>

        public static HttpConfiguration HttpConfiguration { get; private set; }

 

        public void Configuration(IAppBuilder app)

        {

        }

    }

}

 

1.3.       啓動項目,確認katana正確啓動。

  1. 在Startup.cs的Configuration方法加入openid設置:(見附件)

修改配置項

var ApplicationUrl = "http://localhost/SampleMvc4.x/";//你的應用的外服訪問地址

var IdentityUrl = "http://localhost:5000/";//idsvr地址

var ClientId = "mvc5.owin";//你應用的clientid,找管理員註冊

var ClientSecret = "secret";//你應用的clientSecret,找管理員註冊

IdentityUrl配置項爲oauthserver的endpoint地址,確保服務器能訪問endpoint,不然應用沒法啓動。

 

  1. 在須要登陸的action或controller上加入[Authorize]屬性。

 

此時未帶有authcookie的請求會被轉向至openidserver 登陸界面

 

  1. 獲取當前用戶信息:

Cnbauth在簽出的token內自帶用戶信息。當受權用戶訪問時,controller做用域的User屬性的Claims會被賦值。附幫助類:

 

在action內使用方式以下:

 退出登陸

 public ActionResult Logout()
        {
            Request.GetOwinContext().Authentication.SignOut();
            return Redirect("/");
        }
相關文章
相關標籤/搜索