- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我们正在构建一个新的网络应用程序堆栈。后端功能将在很大程度上基于服务,但由于其中一些服务需要暴露在公共(public)互联网上,我需要保护它们。通过使用标准成员资格/角色提供者模型锁定服务 URL,我取得了部分成功。我现在遇到的问题是,如果我们要在我们的服务栈之上构建一个 iOS(或 Android)应用程序,我们将如何处理安全问题?
我完全愿意接受建议。到目前为止,我已经在下面提供了一些有关设置的信息。
使用在 HTTPS 连接上运行的 SQL 成员身份/角色提供者/表单例份验证的 ASP.NET 网站。只有默认/登录/常见问题解答页面可以公开访问。所有其他页面都位于一个名为“/Secure”的文件夹中,该文件夹需要您进行身份验证。
WCF 网络服务。所有支持的功能都是通过此服务提供的。端点仅在本地 Intranet 上可用。 ASP.NET 网站代码隐藏使用标准服务引用与服务对话。
WCF REST/JSON 服务。上面的一些功能被重新包装在 WCF REST/JSON 服务中。这是使用“WCF REST Template 40”设置的。然后使用 System.Web.Routing 将服务路由到“/Secure/jsonsvc/*”。因为它位于/Secure 文件夹下,所以它继承了任何请求的成员资格/角色提供者安全性。例如从客户端 JQuery 小部件对此服务的 xmlhttp 调用仅适用于已经登录到我们网站的用户。
将来,这些相同的 WCF Rest/JSON 服务可能需要由外部应用程序(例如 iPad 应用程序)使用。鉴于缺少 HTTP 站点/ session /登录上下文,解决此问题的最佳方法是什么。
最佳答案
如您所知,ASP.NET 表单例份验证使用 cookie 来维护您的身份验证 session 。撇开关于这是否是在 REST 方法下处理事情的最佳方式的任何争论,我看不出您不能在您的 iOS 应用程序中使用相同 cookie 的技术原因。
您显然需要一个简单的登录网页(通过 UIWebView 在您的应用程序中显示)或登录 REST 方法首先将 cookie 返回给您,然后在后续请求中您只需返回 cookie请求(这里有一点 information on handling cookies in iOS using the ASIHTTP library )。
要牢记的几件重要事情是您无法控制设备所在的无线网络,因此您绝对应该使用 SSL,并且您还应该考虑失败/重试/等一个登录 REST 方法,就像登录页面一样(如果不是更多的话)。
希望对您有所帮助!
关于.net - 我应该如何保护我的 WCF Rest/JSON 服务以用于 iOS/Android 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7332029/
我在为 MacOSX 构建的独立包中添加 DMG 背景的自定义图标时遇到问题。我在项目的根目录中添加了一个包。正在从中加载自定义图标,但没有加载 DMG 背景图标。我正在使用 Java fx 2.2.
Qt for Symbian 和 Qt for MeeGo 有什么区别?我知道 Qt 是一个交叉编译平台。这是否意味着如果我使用来自 Qt 的库,完全相同的库可以在所有支持 Qt 的设备(例如 Sym
我正在尝试使用 C# .NET 3.5/4.0 务实地运行 SQL Server 数据库的备份。我已经找到了如何完成此操作,但是我似乎找不到用于备份的命名空间库。 我正在寻找 Microsoft.Sq
我最近在疯狂学习 Java,但我通常是一名 .NET 开发人员。 (所以请原谅我的新手问题。) 在 .Net 中,我可以在不使用 IIS 的情况下开发 ASP.Net 页面,因为它有一个简化的 Web
这post仅当打印命令中有字符串时才有用。现在我有大量的源代码,其中包含一条声明,例如 print milk,butter 应该格式化为 print(milk,butter) 用\n 捕获行尾并不成功
所以我的问题是: https://gist.github.com/panSarin/4a221a0923927115584a 当我保存这个表格时,我收到了标题中的错误 NoMethodError (u
如何让 Html5 音频在点击时播放声音? (ogg 用于 Firefox 等浏览器,mp3 用于 chrome 等浏览器) 到目前为止,我可以通过 onclick 更改为单个文件类型,但我无法像在普
如果it1和it2有什么区别? std::set s; auto it1 = std::inserter(s, s.begin()); auto it2 = std::inserter(s, s.en
4.0.0 com.amkit myapp SpringMVCFirst
我目前使用 Eclipse 作为其他语言的 IDE,而且我习惯于不必离开 IDE 做任何事情 - 但是我真的很难为纯 ECMAScript-262 找到相同或类似的设置。 澄清一下,我不是在寻找 DO
我想将带有字符串数组的C# 结构发送到C++ 函数,该函数接受void * 作为c# 结构和char** 作为c# 结构字符串数组成员。 我能够将结构发送到 c++ 函数,但问题是,无法从 c++ 函
我正在使用动态创建的链接: 我想为f:param附加自定义转换器,以从#{name}等中删除空格。 但是f:param中没有转换器
是否可以利用Redis为.NET创建后写或直写式缓存?理想情况下,透明的高速缓存是由单个进程写入的,并且支持从数据库加载丢失的数据,并每隔一段时间持久保存脏块? 我已经搜查了好几个小时,也许是goog
我正在通过bash执行命令的ssh脚本。 FILENAMES=( "export_production_20200604.tgz" "export_production_log_2020060
我需要一个正则表达式来出现 0 到 7 个字母或 0 到 7 个数字。 例如:匹配:1234、asdbs 不匹配:123456789、absbsafsfsf、asf12 我尝试了([a-zA-Z]{0
我有一个用于会计期间的表格,该表格具有期间结束和开始的开始日期和结束日期。我使用此表来确定何时发生服务交易以及何时在查询中收集收入,例如... SELECT p.PeriodID, p.FiscalY
我很难为只接受字符或数字的 Laravel 构建正则表达式验证。它是这样的: 你好<-好的 123 <- 好的 你好123 <-不行 我现在的正则表达式是这样的:[A-Za-z]|[0-9]。 reg
您实际上会在 Repeater 上使用 OnItemDataBound 做什么? 最佳答案 “此事件为您提供在客户端显示数据项之前访问数据项的最后机会。引发此事件后,数据项将被清空,不再可用。” ~
我有一个 fragment 工作正常的项目,我正在使用 jeremyfeinstein 的 actionbarsherlock 和滑动菜单, 一切正常,但是当我想自定义左侧抽屉列表单元格时,出现异常
最近几天,我似乎平均分配时间在构建我的第一个应用程序和在这里发布问题!! 这是我的第一个应用程序,也是我们的设计师完成的第一个应用程序。我试图满足他所做的事情的外观和感觉,但我认为他没有做适当的事情。
我是一名优秀的程序员,十分优秀!