RESTful Service和用户角色授权 -- .net-4.0 领域 和 asp.net-web-api 领域 和 authorization 领域 和 restful-authentication 领域 相关 的问题

Restful Service and User role authorization


0
vote

问题

中文

我们为我们的客户创建了一个RESTful Web API,它将被他们的本地移动应用程序和Web应用程序消耗没有第三方访问

每个用户在应用程序中有自己的凭据和角色,以及基于角色的访问AKA授权。

在没有保留会话的情况下在Web API中验证和角色授权的最佳方法是什么。我正在使用ASP.NET Web API 1.0,因为我是4.0框架。

我是否需要从每个呼叫的DB获取角色信息。任何有效的方法?

英文原文

We are creating a Restful Web API for our client which would be consumed by their Native Mobile apps and Web apps only no third party access.

Each user has his own credentials and Role in Application, and role based access aka Authorization.

What is best way to authenticate and role authorization of user in web API without keeping session. I am using Asp.net web API 1.0 as i am on 4.0 framework.

Do i need to get Role information from DB on each call. any efficient way?

           
 
 

回答列表

0
 
vote

如果您位于基于.NET的环境中,可以从多个身份验证方案中进行选择,独立选择多个访问控制/授权方案。

对于认证,最简单的方法是使用HTTP I.E.TTP基本身份验证支持的机制。您还可以查看基于Kerberos的身份验证。所有这些都在.NET中提供OOTB。

您还可以考虑打开ID连接或OAUTH,但这需要其他库。

为授权,.NET为您提供了基于声明的授权,这是一种实现基于角色的访问控制的方法。

看看这个伟大的答案:使用基于索赔的授权

 

If you are in a .NET-based environment, you can choose from multiple authentication schemes and independently choose multiple access control / authorization schemes.

For the authentication, the simplest way is to use the mechanisms supported by HTTP i.e. HTTP Basic authentication. You can also look at Kerberos-based authentication. All these are available OOTB in .NET.

You can also consider Open ID Connect or OAuth but that will require additional libraries.

As for the authorization, .NET gives you claims-based authorization which is a way to achieve role-based access control.

Have a look at this great answer on SO: Using Claim-Based Authorization

 
 
 
 

相关问题

0  XSD数据验证在.NET 4.0中可靠吗?  ( Is xsd data validation reliable in net 4 0 ) 
我已经使用服务提供商提供的WSDL和几个XSD文件写入公共SOAP Web服务。我想找到一种简单的方法来对XSD文件验证用户数据,因此我使用来自MSDN的标准示例,使用XMLSchemaset for XSD文件,XMLReader和验证例程来捕获错误消息。 (代码在 http://msdn.microsoft.co...

8  我在c#中运行的背景下?  ( Under what context am i running in c ) 
我想知道... 当我有这样的代码时: lock (obj) { MyCode.MyAgent(); } 可以<代码> MyAgent 包含的代码识别它是下<代码>运行lock 块? 怎么样: for (int i=0;i<5;i++) { MyCode.MyAgent(); } 可...

3  LINQ表达式优化语法?  ( Linq expression to optimize syntax ) 
foreach (var item in mainCanvas.Children) { if (item is Button) { (item as Button).Content = "this is a button"; } } 我...

11  我应该使用什么gacutil.exe?  ( What gacutil exe should i use ) 
所以,在win 2008 r2 std x64上,我有6(六)gacutil.exe所有不同的(不计算在VS文件夹中),IN: c: program files microsoft sdks windows v6.0a bin c: program files microsoft sdks ...

1  如何替换现在使用过时的system.data.oracleclient命名空间类的代码?  ( How to replace code that uses now obsolete system data oracleclient namespace cl ) 
我已经制作了一个"通用" 程序,可将数据转换为另一个数据。它使用配置文件来定义转换。它使用这样的代码: static DbProviderFactory _srcProvFactory; static DbProviderFactory _trgtProvFactory; public static bool ...

12  构建错误:“表达式太长或复杂,以编译”  ( Build error an expression is too long or complex to compile ) 
每个现在,当我构建一个特定的解决方案时,我会在错误列表窗口中获得随机量的"表达式太长或复杂" 。但是,错误点唯一的项目是特定项目,而不是项目中的文件或特定位置。 当我遇到这个时,我'干净'然后我重新启动vs,似乎修复它。关于导致此内容的任何想法? 这个特定的解决方案有50个项目。 ...

2  在内存程序集对象中编译为bytes []  ( Compiled in memory assembly object to bytes ) 
我在内存中生成装配对象,需要获取字节表示。 我遵循代码,但今天我需要它在内存中完成 b0 我已经研究了装配构建器方法和装配方法,但无法找到适当的方法。 谢谢。 ...

1  究竟是自动注入func <t>的步骤是什么?  ( What exactly are the steps to auto inject funct ) 
我正在尝试设置一个服务类,在那里我想在其构造函数中注入一个简单的 Func<OtherService> 工厂方法。 type OtherService 是一个类,应该是自我限制的(确实在没有工厂注射的时)。 我安装了最新的ninject核心,indject.extensions.factory nuget包。当我尝...

6  来自Wincontrol的本机对象类?  ( Native object class from wincontrol ) 
我正在尝试采取可可行的对象并将其投入到其本机对象类型中: CustomControl control = (CustomControl) this.UIMap.UIMainWindow.UICustomControl.NativeElement; 然后我想治疗结果 CustomControl ,因为我将在我...

2  ASP.NET MVC 2使用NServiceBus无法加载请求的类型  ( Asp net mvc 2 with nservicebus unable to load requested types ) 
我正在尝试使用nservicebus与asp.net mvc 2网站(使用VS 2010和.NET 4.0框架)。但是,当我在本地计算机上运行该站点时,我会收到以下错误: 无法加载一个或多个请求的类型。获取更多信息,检索loaderexceptions属性。 以下是我所拍摄的相关步骤: 下载了nserviceb...

1  是否有linq to实体调试可视化器工作?  ( Is there a linq to entities debug visualizer working ) 
我找到了这个但这不适用于me.i添加了一个引用并还尝试将其复制到此目录 - Microsoft Visual Studio 9.0 common7 packages debugger devizizers 有没有人尝试过使用这个或类似的东西,帮助我看到linq query.i知道我可以使用探查器,但我想要...

3  如何更改事件处理程序在继承的类中工作的方式?  ( How would i change the way the event handler works in an inherited class ) 
我正在使用自定义类,并有一个事件处理程序来观看属性,只在特定情况下反应。 以下是来自基类的片段: public class PageView { private UIView activePage; public List<UIView> Pages { get; set; } publi...

0  “加密”文件/文件夹以稍后读取  ( Encrypting files folders for reading later ) 
我有一个文件夹。用文件夹。文件(主要是.pngs)。 用于学习目的,我正在尝试创建一个应用程序,将该文件夹和"编译" 它在一个数据文件中。像一个.bin。重点是,用户无法看到或编辑图像......易于。 在将来,我的应用程序可以打开这样的数据文件并读取文件夹的内容,并显示文件夹中找到的图像(使用图像.FROMFILE...

3  与不同的文化的日期时间转换  ( Datetime conversion with different cultures ) 
我想知道弄清楚如何转换日期时间的最佳方式是什么? 现在我的电脑是设置为 // CustomerAddresses.php (extends CActiveRecord) ... public function relations() { return array( 'AddressTypes...

1  DataGrid ReadOnly设置单个单元格  ( Datagrid set single cells readonly ) 
我正在寻找一种方法来禁用WPF DataGrid中的一些细胞。因为 israadonly < / a>不是 decestencyproperty ,我不能使用它。 有没有其他方法来做这件事? 我想写这样的东西: <DataGridTextColumn IsReadOnly="{Binding Path=Value...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.