使用net4.5版本开发的webapi的安全认证问题

lenhanxao 2018-08-21 09:53:55
现在一个webapi项目是用的net4.5版本上开发的,现在就是需要对API做一些认证操作,只让特定的访问,所以百度教程都是装owin来做oauth,但是我安装 Microsoft.Owin.Host.SystemWeb报错,提示"您正在尝试将此程序包安装到某个将“.NETFramework,Version=v4.5”作为目标的项目中,但此程序包不包含与该框架兼容的任何程序集引用或内容文件"。 难道我的项目是4.5版本开发的,就不能用了吗?或者用其他方式来实现oauth来控制访问权限,请大佬越详细越好,或者发个教程的链接也行,谢谢...
...全文
587 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengchao1000 2018-08-23
  • 打赏
  • 举报
回复
引用 2 楼 lenhanxao 的回复:
谢谢@水边2 的回答,只是这样的话就会被抓包,别人拿到帐号密码,不就可以像正常用户一样恶意使用了吗?我是了解的oauth返回的token是有一个时间效期,时间戳,随机串等防止这种情况..


如果想用OAuth 2.0的话可以用开源框架,Identityserver 4 , OAuth 2.0/OIDC/单点登录 都可以解决

https://www.cnblogs.com/stulzq/category/1060023.html
qq_38660532 2018-08-23
  • 打赏
  • 举报
回复
可以模仿微信accesstoken
使用账号密码登录后,拿到token,过期时间两小时.然后拿此token请求API
lenhanxao 2018-08-21
  • 打赏
  • 举报
回复
引用 6 楼 stherix 的回复:
Microsoft.Owin有支持.net45的版本
nuget直接拉
我就是没有找到...
stherix 2018-08-21
  • 打赏
  • 举报
回复
Microsoft.Owin有支持.net45的版本
nuget直接拉
游北亮 2018-08-21
  • 打赏
  • 举报
回复
引用 2 楼 lenhanxao 的回复:
谢谢@水边2 的回答,只是这样的话就会被抓包,别人拿到帐号密码,不就可以像正常用户一样恶意使用了吗?我是了解的oauth返回的token是有一个时间效期,时间戳,随机串等防止这种情况..

抓包?你没看到我定义的参数名叫 md5Pwd,也就是客户端要对输入的密码进行 加盐,再转md5后,提交给服务端。
另外,现在的互联网基本上都是https协议,被网络嗅探抓包的概率已经降低了很多了。

再说破解问题,无论你用哪种方案,都无法避免别人抓包研究你的协议,用我的方法,一样可以实现请求添加时间戳,服务端认证增加有效时间机制
  • 打赏
  • 举报
回复
你这种应该要jwt吧
lenhanxao 2018-08-21
  • 打赏
  • 举报
回复
谢谢@水边2 的回答,只是这样的话就会被抓包,别人拿到帐号密码,不就可以像正常用户一样恶意使用了吗?我是了解的oauth返回的token是有一个时间效期,时间戳,随机串等防止这种情况..
游北亮 2018-08-21
  • 打赏
  • 举报
回复
oauth一般用于第三方授权登录居多,
你如果只是简单的需要在某些接口上做登录验证,可以在项目里定义一个类,继承自ActionFilterAttribute,例如:

public class AuthFilter : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
// 所有维护用api请求都要求验证登录
if (!IsLogined())
{
var username = HttpContext.Current.Request.QueryString["name"];
var password = HttpContext.Current.Request.QueryString["pwd"];
//if (actionContext.ActionArguments != null)
//{
// actionContext.ActionArguments.TryGetValue("user", out username);
// actionContext.ActionArguments.TryGetValue("pwd", out password);
//}
if (!DoLogin(username, password))
{
actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK, ApiResult.CreateError("未登录"));
return;
}
}
base.OnActionExecuting(actionContext);
}

private bool DoLogin(string userName = "", string md5Pwd = "")
{
// 登录验证
}
private bool IsLogined()
{
// 通过cookie或Session判断是否登录
}
}


OK,有了上面这个类后,在你的那些需要登录校验的Controller上添加这个特性就ok了,例如:

[AuthFilter] // 这个Controller下的所有Action都要进行登录
public sealed class ConfigsController : ApiController
{
}




也可以像下面这样灵活控制哪些要登录:

// 这个Controller下有的要登录,有的不要登录
public sealed class ConfigsController : ApiController
{
// 这个方法不用登录
public string Aaa(){
}
// 这个方法要登录
[AuthFilter]
public string Aaa(){
}
}
stevenjin 2018-08-21
  • 打赏
  • 举报
回复
https://download.csdn.net/download/stevenjin/9892492
用表单验证,接口用BASIC授权
mirrorspace 2018-08-21
  • 打赏
  • 举报
回复
可以模仿微信accesstoken
使用账号密码登录后,拿到token,过期时间两小时.然后拿此token请求API
我要挣钱(http://www.51zhengqian.net)编辑 目录 第1章 掀起你的盖头来——初识Android 1.1 认识Android 1.2 Android的背景 1.2.1 Android的历史 1.2.2 Android的发展 1.3 我的Android我做主 1.3.1 开发基于Android平台的应用 1.3.2 参加Android开发者大赛 1.3.3 个人英雄主义再现——得到更多人的认可和尊重 1.3.4 获得应有的收益——AndroidMarket 1.4 真实体验——Android模拟器 1.4.1 模拟器概述 1.4.2 模拟器和真机的区别 1.4.3 模拟器使用注意事项 1.5 更上一层楼——加入Android开发社区 1.6 本章小结 第2章 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件开发包 2.1.3 其他注意事项 2.2 Windows开发环境搭建 2.2.1 JDK、Eclipse、AndroidSDK软件安装 2.2.2 SDK的家在哪里——设定AndroidSDKHome 2.2.3 真的准备好了吗——开发环境验证 2.2.4 创建Android虚拟设备(AVD) 2.3 Linux一族——Ubuntu开发环境搭建 2.3.1 Java、Eclipse和ADT插件安装 2.3.2 设定AndroidSDKHome 2.4 MacOS一族——苹果开发环境搭建 2.5 本章小结 第3章 清点可用资本——AndroidSDK介绍 3.1 AndroidSDK基础 3.2 深入探寻AndroidSDK的密码 3.2.1 AndroidSDK目录结构 3.2.2 android.jar及内部结构 3.2.3 SDK文档及阅读技巧 3.2.4 先来热热身——AndroidSDK例子解析 3.2.5 SDK提供的工具介绍 3.3 Android典型包分析 3.3.1 开发的基石——AndroidAPI核心开发包介绍 3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣——在G1上体验Market的使用 4.3 Android开发活动及特色应用 4.3.1 开发应用的领域 4.3.2 AndroidMarket特色应用一览 4.4 你也可以做东家——申请Market账号 4.4.1 卖东西要先入伙——准备工作 4.4.2 入伙过程——申请 4.5 开张了——在Market上发布应用 4.5.1 发布时可能遇到的错误 4.5.2 卖东西也要签名——生成签名文件 4.5.3 打包、签名、发布应用 4.6 本章小结 第5章 千里之行始于足下——第一个应用HelloWorld 5.1 HelloWorld应用分析 5.1.1 新建一个Android工程 5.1.2 填写工程的信息 5.1.3 编程实现 5.1.4 运行项目 5.2 调试项目 5.2.1 设置断点 5.2.2 Debug项目 5.2.3 断点调试 5.3 本章小结 第6章 磨刀不误砍柴工——Android应用程序结构介绍 6.1 Android体系结构介绍 6.1.1 应用程序(Application) 6.1.2 应用程序框架(ApplicationFramework) 6.1.3 库(Libraries)和运行环境(RunTime) 6.2 Android应用程序组成 6.2.1 Activity介绍 6.2.2 BroadcastIntentReceiver介绍 6.2.3 Service介绍 6.2.4 ContentProvider介绍 6.3 Android应用工程文件组成 6.4 本章小结 第7章 良好的学习开端——Android基本组件介绍 7.1 第一印象很重要——界面UI元素介绍 7.1.1 视图组件(View) 7.1.2 视图容器组件(Viewgroup) 7.1.3 布局组件(Layout) 7.1.4 布局参数(LayoutParams) 7.2 我的美丽我做主——Android中应用界面布局 7.2.1 实例操作演示 7.2.2 实例编程实现 7.3 不积跬步无以至千里——常用widget组件介绍 7.3.1 创建widget组件实例 7.3.2 按钮(Button)介绍与应用 7.3.3 文本框(TextView)介绍与应用 7.3.4 编辑框(EditText)介绍与应用 7.3.5 多项选择(CheckBox)介绍与
内容简介   本书内容上涵盖了用android开发的大部分场景,从android基础介绍、环境搭建、sdk介绍、market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个android平台下的完整综合实例及源代码分析,分别是rss阅读器、基于google map的个人gps、豆瓣网(web 2.0)客户端、在线音乐播放器、手机信息查看助手。本书注重对实际动手能力的指导,在遵循技术研发知识体系的严密性同时,在容易产生错误、不易理解的环节配以了翔实的开发情景截图,并将重要的知识点和开发技巧以“小实验”、“小提醒”、“小知识”、“注意”等的活泼形式呈现给读者。在程序实例的讲解方面,主要将实例安插在android开发的精髓知识章节,这为初学者学习与实践结合提供了很好的指导。.    本书配套有400多分钟的全程开发视频光盘,指导读者快速、无障碍地学通android实战开发技术。..    本书适合具备一定软件开发经验,想快速进入android开发领域的程序员;具备一些手机开发经验的开发者和android开发爱好者学习用书;也适合作为相关培训学校的android培训教材。... 目录 第1章 掀起你的盖头来——初识android. 1 1.1 认识android 1 1.2 android的背景 2 1.2.1 android的历史 2 1.2.2 android的发展 2 1.3 我的android我做主 2 1.3.1 开发基于android平台的应用 3 1.3.2 参加android开发者大赛 3 1.3.3 个人英雄主义再现——得到更多人的认可和尊重 3 1.3.4 获得应有的收益——android market 3 1.4 真实体验——android模拟器 4 1.4.1 模拟器概述 4 1.4.2 模拟器和真机的区别 4 1.4.3 模拟器使用注意事项 4 1.5 更上一层楼——加入android开发社区 5 1.6 本章小结 6 第2章 工欲善其事 必先利其器——搭建android开发环境 7 2.1 开发android应用前的准备 7 2.1.1 android开发系统要求 7 2.1.2 android软件开发包 7 .2.1.3 其他注意事项 8 2.2 windows开发环境搭建 8 2.2.1 jdk、eclipse、android sdk软件安装 8 2.2.2 sdk的家在哪里——设定android sdk home 14 2.2.3 真的准备好了吗——开发环境验证 14 2.2.4 创建android 虚拟设备(avd) 15 2.3 linux一族——ubuntu开发环境搭建 17 2.3.1 java、eclipse和adt插件安装 17 2.3.2 设定android sdk home 23 2.4 mac os一族——苹果开发环境搭建 24 2.5 本章小结 24 第3章 清点可用资本——android sdk介绍 25 3.1 android sdk 基础 25 3.2 深入探寻android sdk的密码 25 3.2.1 android sdk目录结构 25 3.2.2 android.jar及内部结构 27 3.2.3 sdk文档及阅读技巧 27 3.2.4 先来热热身——android sdk例子解析 28 3.2.5 sdk提供的工具介绍 31 3.3 android典型包分析 33 3.3.1 开发的基石——android api核心开发包介绍 33 3.3.2 拓展开发外延——android可选api介绍 34 3.4 本章小结 34 第4章 赚钱的市场——android market及应用发布 35 4.1 google market产生背景与目的 35 4.2 体验“选货”的乐趣——在g1上体验market的使用 35 4.3 android开发活动及特色应用 37 4.3.1 开发应用的领域 37 4.3.2 android market特色应用一览 38 4.4 你也可以做东家——申请market账号 43 4.4.1 卖东西要先入伙——准备工作 43 4.4.2 入伙过程——申请 44 4.5 开张了——在market上发布应用 45 4.5.1 发布时可能遇到的错误 45 4.5.2 卖东西也要签名——生成签名文件 46 4.5.3 打包、签名、发布应用 48 4.6 本章小结 51 第5章 千里之行 始于足下——第一个应用helloworld 52 5.1 helloworld应用分析 52 5.1.1 新建一个andr
我要挣钱(http://www.51zhengqian.net)编辑 目录 第1章 掀起你的盖头来——初识Android 1.1 认识Android 1.2 Android的背景 1.2.1 Android的历史 1.2.2 Android的发展 1.3 我的Android我做主 1.3.1 开发基于Android平台的应用 1.3.2 参加Android开发者大赛 1.3.3 个人英雄主义再现——得到更多人的认可和尊重 1.3.4 获得应有的收益——AndroidMarket 1.4 真实体验——Android模拟器 1.4.1 模拟器概述 1.4.2 模拟器和真机的区别 1.4.3 模拟器使用注意事项 1.5 更上一层楼——加入Android开发社区 1.6 本章小结 第2章 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件开发包 2.1.3 其他注意事项 2.2 Windows开发环境搭建 2.2.1 JDK、Eclipse、AndroidSDK软件安装 2.2.2 SDK的家在哪里——设定AndroidSDKHome 2.2.3 真的准备好了吗——开发环境验证 2.2.4 创建Android虚拟设备(AVD) 2.3 Linux一族——Ubuntu开发环境搭建 2.3.1 Java、Eclipse和ADT插件安装 2.3.2 设定AndroidSDKHome 2.4 MacOS一族——苹果开发环境搭建 2.5 本章小结 第3章 清点可用资本——AndroidSDK介绍 3.1 AndroidSDK基础 3.2 深入探寻AndroidSDK的密码 3.2.1 AndroidSDK目录结构 3.2.2 android.jar及内部结构 3.2.3 SDK文档及阅读技巧 3.2.4 先来热热身——AndroidSDK例子解析 3.2.5 SDK提供的工具介绍 3.3 Android典型包分析 3.3.1 开发的基石——AndroidAPI核心开发包介绍 3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣——在G1上体验Market的使用 4.3 Android开发活动及特色应用 4.3.1 开发应用的领域 4.3.2 AndroidMarket特色应用一览 4.4 你也可以做东家——申请Market账号 4.4.1 卖东西要先入伙——准备工作 4.4.2 入伙过程——申请 4.5 开张了——在Market上发布应用 4.5.1 发布时可能遇到的错误 4.5.2 卖东西也要签名——生成签名文件 4.5.3 打包、签名、发布应用 4.6 本章小结 第5章 千里之行始于足下——第一个应用HelloWorld 5.1 HelloWorld应用分析 5.1.1 新建一个Android工程 5.1.2 填写工程的信息 5.1.3 编程实现 5.1.4 运行项目 5.2 调试项目 5.2.1 设置断点 5.2.2 Debug项目 5.2.3 断点调试 5.3 本章小结 第6章 磨刀不误砍柴工——Android应用程序结构介绍 6.1 Android体系结构介绍 6.1.1 应用程序(Application) 6.1.2 应用程序框架(ApplicationFramework) 6.1.3 库(Libraries)和运行环境(RunTime) 6.2 Android应用程序组成 6.2.1 Activity介绍 6.2.2 BroadcastIntentReceiver介绍 6.2.3 Service介绍 6.2.4 ContentProvider介绍 6.3 Android应用工程文件组成 6.4 本章小结 第7章 良好的学习开端——Android基本组件介绍 7.1 第一印象很重要——界面UI元素介绍 7.1.1 视图组件(View) 7.1.2 视图容器组件(Viewgroup) 7.1.3 布局组件(Layout) 7.1.4 布局参数(LayoutParams) 7.2 我的美丽我做主——Android中应用界面布局 7.2.1 实例操作演示 7.2.2 实例编程实现 7.3 不积跬步无以至千里——常用widget组件介绍 7.3.1 创建widget组件实例 7.3.2 按钮(Button)介绍与应用 7.3.3 文本框(TextView)介绍与应用 7.3.4 编辑框(EditText)介绍与应用 7.3.5 多项选择(CheckBox)介绍与

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧