.net 4.0+ 应用接入openid Server步骤:

Requirements:Microsoft.AspNet.Mvc 5.2.4+

1 确认应用是否是katana启动(项目引用了owin,根目录下有startup.cs)。

如果不是katatna启动:

1.1 加入以下nuget包:

// 依赖众多

Microsoft.Owin.Security.OpenIdConnect

// 关键

Identitymodel

Microsoft.Owin.Security.Cookies

//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("/");
}

最新文章

  1. Jquery操作select,左右移动,双击移动 取到所有option的值
  2. 书摘及理解:Servlet与JSP的关系
  3. Java魔法堂:JUnit4使用详解
  4. 更新Android SDK之后Eclipse提示ADT版本过低的一个简易解决办法
  5. jquery json 操作(转)
  6. 关于apache的重启
  7. 【Mood-7】tell 2 my gf-miss u not sudden but always
  8. px,dp,sp单位转换工具类
  9. poj 3301 Texas Trip 三分法
  10. python 使用__future__
  11. Repair Cisco vpnclient on windows10
  12. 将node.js程序作为服务,并在windows下开机自动启动(使用forever)
  13. 这是个巧妙的表达式: a ˆ= b ˆ= a ˆ= b 它不需要临时变量就可 以交换 a 和 b 的值。
  14. 原生JS—实现图片循环切换及监测鼠标滚动切换图片
  15. 为什么选择Django?
  16. Lintcode400 Maximum Gap solution 题解
  17. Spark本地运行成功,集群运行空指针异。
  18. Eclispe IDE集成Maven
  19. H5填坑笔记--持续更新
  20. Python 之ConfigParser 学习笔记

热门文章

  1. (七)Amazon Lightsail 部署LAMP应用程序之清除已安装服务
  2. 01 less的使用
  3. vue组件name的作用小结
  4. 【第1题】 Pythonn内存管理以及垃圾回收机制
  5. 【Spring JDBC】JdbcTemplate(三)
  6. SpringBoot(十八)_springboot打成war包部署
  7. 检索式chatbot:
  8. Python paramiko 报错 paramiko.ssh_exception.SSHException: not a valid RSA private key file
  9. web app升级—带进度条的App自动更新
  10. 生成git的SSH公钥