标签: authorization

在ASP.NET MVC中重定向未授权的控制器

我在ASP.NET MVC中有一个控制器,我已将其限制为admin角色:

[Authorize(Roles = "Admin")]
public class TestController : Controller
{
   ...
Run Code Online (Sandbox Code Playgroud)

如果不在Admin角色中的用户导航到此控制器,则会显示空白屏幕.

我想要做的是将它们重定向到View,其中显示"您需要处于Admin角色才能访问此资源".

我想到的一种方法是在IsUserInRole()上检查每个操作方法,如果不在角色中,则返回此信息视图.但是,我必须在每个打破DRY主体的Action中加入它,显然很难维护.

c# asp.net-mvc redirect authorization

73
推荐指数
4
解决办法
10万
查看次数

传统Web应用程序和API中的身份验证,授权和会话管理

如果我错了,请纠正我:在传统的Web应用程序中,浏览器会自动将会话信息附加到服务器的请求中,因此服务器可以知道请求来自谁.到底究竟附加了什么?

但是,在基于API的应用程序中,此信息不会自动发送,因此在开发API时,我必须检查自己,例如请求是否来自经过身份验证的用户?这通常是怎么做的?

authentication api session authorization

73
推荐指数
3
解决办法
7万
查看次数

htaccess从Basic Auth中排除一个URL

我需要从正常的htaccess Basic Auth保护中排除一个Url(甚至更好的一个前缀).像/ callbacks/myBank/ callbacks /之类的东西.*你有任何提示怎么做?

我不想要的是如何排除文件.这必须是url(因为这是基于PHP框架的解决方案,并且所有url都使用mod_rewrite重定向到index.php).所以这个网址下没有文件.没有.

其中一些网址只是来自其他服务的回调(没有IP是未知的,所以我不能基于IP排除),他们无法提示用户/密码.

目前的定义很简单:

AuthName "Please login."
AuthGroupFile /dev/null
AuthType Basic
AuthUserFile /xxx/.htpasswd
require valid-user 
Run Code Online (Sandbox Code Playgroud)

apache .htaccess authorization

72
推荐指数
4
解决办法
7万
查看次数

Python请求库如何使用单个标记传递Authorization标头

我有一个请求URI和一个令牌.如果我使用:

curl -s "<MY_URI>" -H "Authorization: TOK:<MY_TOKEN>"
Run Code Online (Sandbox Code Playgroud)

等,我得到一个200并查看相应的JSON数据.所以,我安装了请求,当我尝试访问此资源时,我得到403可能是因为我不知道传递该令牌的正确语法.任何人都可以帮我搞清楚吗?这就是我所拥有的:

import sys,socket
import requests

r = requests.get('<MY_URI>','<MY_TOKEN>')
r. status_code
Run Code Online (Sandbox Code Playgroud)

我已经尝试过:

r = requests.get('<MY_URI>',auth=('<MY_TOKEN>'))
r = requests.get('<MY_URI>',auth=('TOK','<MY_TOKEN>'))
r = requests.get('<MY_URI>',headers=('Authorization: TOK:<MY_TOKEN>'))
Run Code Online (Sandbox Code Playgroud)

但这些都不起作用.

python authorization get token python-requests

72
推荐指数
7
解决办法
13万
查看次数

为什么<deny users ="?" />包含在以下示例中?

?通配符表示未经授权的用户,同时*代表了所有用户,认证和未.我的书显示了以下URL授权示例:

<authorization>
  <deny users="?" />
  <allow users="dan,matthew" />
  <deny users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud)


但是上面的代码不具有与以下相同的效果:

<authorization>
  <allow users="dan,matthew" />
  <deny users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud)

或者作者是否还包括 <deny users="?" />规则?

asp.net authentication authorization forms-authentication asp.net-membership

71
推荐指数
2
解决办法
13万
查看次数

REST API授权和身份验证(Web +移动)

我已经阅读过有关oAuth,Amazon REST API,HTTP Basic/Digest等的内容,但无法将其全部变成"单件".这可能是最接近的情况 - 为移动应用程序创建API - 身份验证和授权

我想建立以API为中心的网站 - 服务.所以(在一开始)我会在中心有一个API,网站(PHP + MySQL)将通过网络接口通过cURL,AndroidiPhone连接.所以3个主要客户端 - 3个API密钥.任何其他开发人员也可以通过API接口开发,他们将获得自己的API密钥.API操作将根据userLevel状态被接受/拒绝,如果我是管理员,我可以删除任何内容等,所有其他操作只能操作他们的本地(帐户)数据.

首先,授权 - 我应该使用oAuth + xAuth还是我自己的一些实现(参见http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/RESTAuthentication.html?r=9197)?据我所知,亚马逊服务用户是== API用户(有API密钥).在我的服务上,我需要将标准用户/帐户(在网站上注册的用户)和开发者帐户(应该有他们的API密钥)分开.

所以我首先需要授权API密钥,然后验证用户自己.如果我使用亚马逊的方案检查开发人员的API密钥(授权他们的应用程序),我应该使用哪个用于身份验证?

我读过关于通过api.example.org/auth(通过HTTPS,HTTP Basic)发布我的用户名和密码后获取令牌,然后在每个后续请求中转发它.如果我在Android网站上同时登录,如何管理令牌?如果我只在第一次请求时使用SSL(当用户名和密码被传输时)而且只在每个其他地方使用HTTP,那么中间人攻击呢?这个示例中的问题不是密码保护REST服务吗?

php authentication api rest authorization

69
推荐指数
1
解决办法
5万
查看次数

我可以抛出非授权或未经过身份验证的.NET异常

我有部分代码,我想在用户未经过身份验证/未授权时抛出异常.

因此,我不想编写自己的NotAuthenticatedException和NotAuthorizedException,而是想知道是否还没有一些C#标准.

我可以想象很多程序会抛出类似的异常,如果每个人都"再次编写自己的轮子"就不会有用.

c# authentication authorization exception

68
推荐指数
3
解决办法
5万
查看次数

ASP.NET核心中基于令牌的身份验证(刷新)

我正在使用ASP.NET Core应用程序.我正在尝试实现基于令牌的身份验证,但无法弄清楚如何使用新的安全系统.

我的场景: 客户端请求令牌.我的服务器应该授权用户并返回access_token,客户端将在以下请求中使用该access_token.

这里有两篇关于正确实现我需要的文章:

问题是 - 对于我来说,如何在ASP.NET Core中执行相同的操作并不明显.

我的问题是:如何配置ASP.NET Core Web Api应用程序以使用基于令牌的身份验证?我应该追求什么方向?你有没有写过关于最新版本的文章,或者知道我在哪里可以找到它?

谢谢!

c# authentication authorization asp.net-web-api asp.net-core

68
推荐指数
2
解决办法
5万
查看次数

如何将JAAS授权检查委托给Shiro?

我正在开发一个需要基于对象的身份验证和授权的服务器端应用程序.我喜欢Shiro的简单性,但为了与JAAS兼容,我编写了一个使用Apache Shiro作为底层机制的LoginModule.

但我的问题是我找不到将JAAS授权检查委托给Shiro的方法.我怎样才能做到这一点?

java authentication authorization jaas shiro

64
推荐指数
1
解决办法
2661
查看次数

具有不同身份验证标头的HttpClient单实例

鉴于.net HttpClient在设计时考虑了重用,并且意图存在很长时间,并且在短期实例中报告内存泄漏.在为多个用户调用端点时,您希望使用不同的承载令牌(或任何授权标头)对给定端点进行静默呼叫的指南行是什么?

private void CallEndpoint(string resourceId, string bearerToken) {
  httpClient.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("bearer", bearerToken);
  var response = await httpClient.GetAsync($"resource/{resourceid}");
}
Run Code Online (Sandbox Code Playgroud)

鉴于上述代码可以由Web应用程序上的任意数量的线程调用,第一行中设置的标头很可能与调用资源时使用的标头不同.

在不引起使用锁争用和维护无状态Web应用程序的情况下,为单个端点创建和部署HttpClients的建议方法是什么(我目前的做法是为每个端点创建一个客户端)?


生命周期

尽管HttpClient间接实现了IDisposable接口,但HttpClient的推荐用法并不是在每次请求后都将其处理掉.只要您的应用程序需要发出HTTP请求,HttpClient对象就会存在.在多个请求之间存在一个对象,可以设置一个用于设置DefaultRequestHeaders的地方,并且可以防止您在每次请求时重新指定CredentialCache和CookieContainer之类的内容,这是HttpWebRequest所必需的.

.net c# authorization oauth dotnet-httpclient

64
推荐指数
1
解决办法
1万
查看次数