我正在尝试构建自定义AuthorizeAttribute,所以在我的Core项目(类库)中我有这样的代码:
using System;
using System.Web;
using System.Web.Mvc;
using IVC.Core.Web;
using System.Linq;
namespace IVC.Core.Attributes
{
public class TimeShareAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if(!httpContext.Request.IsAuthenticated)
return false;
var rolesProvider = System.Web.Security.Roles.Providers["TimeShareRoleProvider"];
string[] roles = rolesProvider.GetRolesForUser(httpContext.User.Identity.Name);
if(roles.Contains(Website.Roles.RegisteredClient, StringComparer.OrdinalIgnoreCase))
{
return true;
}
return false;
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectResult("/TimeShare/Account/LogOn");
base.HandleUnauthorizedRequest(filterContext);
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试构建该东西时,我收到此错误:错误2'IVC.Core.Attributes.TimeShareAuthorizeAttribute.AuthorizeCore(System.Web.HttpContextBase)':找不到合适的方法来覆盖 ...
我在这里错过了什么吗?我已经搜索了所有网站,但我找到的每个网站都告诉我要完成我在这里所做的事情.我正在使用mvc2 btw.
目前,我正在使用JSF 2.0,Tomcat 7和MongoDB开发一个Web项目.我有一个很大的问题,如何处理数据库中用户的会话管理和身份验证/授权.
我想要的结构如下:只有登录用户才能创建事件,每个人都可以看到创建的事件.
create.xhtml - >仅适用于已登录的用户.events.xhtml - >为大家公开.我计划的基本结构是:
create.xhtml)login.xhtml@SessionScoped进入比赛)问题是:
@SessionScoped注释?在Create.java或
LoginManager.java?我在服务器上执行应用程序时遇到错误"配置部分不能包含CDATA或文本元素(web.confing第149行),错误行如下,
<location path="admin">
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="*"/>;
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个错误.
是否可以针对两个或更多策略应用授权?我使用的是ASP.NET 5,rc1.
[Authorize(Policy = "Limited,Full")]
public class FooBarController : Controller
{
// This code doesn't work
}
Run Code Online (Sandbox Code Playgroud)
如果没有,我如何在不使用政策的情况下实现这一目标 有两组用户可以访问此控制器:"完整"和"有限".用户可以属于"完整"或"有限",或两者兼而有之.它们只需要属于两个组中的一个以访问该控制器.
有人知道关于烧瓶原理的好教程吗?我正在尝试进行身份验证和授权(needRole和needIdentity),但我还没有得到任何结果.
我几乎肯定没有真正全面的教程 - 也许你们中的一些人有一些时间在他们手上,并希望发布一个教程作为答案?我真的决心用烧瓶代替django,但需要解决这个问题.
我对ASP.NET MVC的理解是,对于授权,我应该使用类似的东西 -
public class IPAuthorize : AuthorizeAttribute {
protected override bool AuthorizeCore(HttpContextBase httpContext) {
//figure out if the ip is authorized
//and return true or false
}
Run Code Online (Sandbox Code Playgroud)
但在Web API中,没有AuthorizeCore(..).
有OnAuthorization(..)和MVC的一般建议是不使用OnAuthorization(..).
我应该在Web API中使用什么来进行自定义授权?
尝试在控制器中获取标头授权密钥以生成API.请求来自提琴手.
$headers = apache_request_headers();
Run Code Online (Sandbox Code Playgroud)
并且$ header包含一个数组.
Array
(
[User-Agent] => Fiddler
[Host] => localhost:8000
[Content-Length] => 102
[Authorization] => TestKey
)
Run Code Online (Sandbox Code Playgroud)
如果我这样尝试获取授权,则抛出错误.
$header['Authorization]
Run Code Online (Sandbox Code Playgroud)
错误:
Undefined index: Authorization
Run Code Online (Sandbox Code Playgroud)
尝试了许多获得授权的方法,但没有做任何工作.有没有办法取这个?
我的Controller类使用AuthorizeAttribute进行修饰以保护操作:
[Authorize(Roles = "User Level 2")]
public class BuyController : Controller
{
...
}
Run Code Online (Sandbox Code Playgroud)
无论何时调用某个操作但用户至少不是"用户级别2"角色,他会自动重定向到登录页面,其中包含以下URL:
HTTP://本地主机:1436 /帐号/登录RETURNURL =%2fBuy
如果用户已登录但没有正确的安全级别,则这不是最佳行为!显示一个页面会更有意义,该页面通知用户缺少的级别而不是显示登录页面.
我该怎么做才能自定义此行为?是否有可能以某种方式将所需的用户级别传递给Login操作?
我想创建一个可以被各种平台调用的Web服务体系结构,例如移动设备,winforms应用程序,iphone,黑莓,你可以命名它.因此,使用像WCF和wsHttp绑定这样的东西可能会导致这种情况失败,我需要降级到basicHttp绑定以实现兼容性.
话虽如此,我需要一个系统在初始登录(身份验证)时生成令牌,然后使用此令牌进行所有后续调用,我想,验证身份验证并允许该方法执行.
任何人都有关于如何解决这个问题的提示或建议?1)生成令牌以及安全令牌中涉及的内容?2)令牌有多长时间,一些用户可能会使用他们的应用程序几个小时甚至可能"睡眠"他们的计算机
谢谢你的建议.
我正在寻找一些关于如何在客户端JavaScript中处理基本安全需求(例如授权)的良好资源,模式和实践.
我正在建立一个网站,其后端系统运行一个常见的MVC框架.后端将处理所有真正的安全需求:授权和身份验证.前端将使用Backbone.js,jQuery和一些其他库构建,以提供非常丰富的用户体验.
这是我需要处理的一个场景的示例:
我有一个数据网格,顶部有几个按钮.如果选择网格中的某个项目,则会启用某些按钮,以便您可以对所选项目执行该操作.这个功能很容易构建......
现在我需要考虑授权.后端服务器将仅呈现允许用户使用的按钮.此外,后端服务器将在用户尝试执行该操作时检查授权....所以如果未经授权,后端将被覆盖,用户将无法执行他们尝试的操作.
但是JavaScript怎么样?如果我的代码设置了一堆jQuery点击处理程序或启用和禁用按钮的其他事件,我该如何处理不存在的按钮?我只是写了一堆丑陋的if语句来检查按钮的存在吗?或者我是否以一种允许我只根据授权将存在的按钮的JavaScript发送到浏览器的方式来编写JavaScript?要么 ???
现在想象一下树视图可能允许也可能不允许基于授权的拖放功能......以及基于授权可能存在或不存在的添加/编辑表单......以及所有其他复杂的授权需求,很多JavaScript来运行前端的那些部分.
我正在寻找资源,模式和实践来处理这些类型的场景,其中后端处理真正的授权,但前端还需要考虑基于授权的不存在的事情.
javascript security authorization design-patterns backbone.js
authorization ×10
asp.net-mvc ×3
security ×3
c# ×2
asp.net ×1
asp.net-core ×1
attributes ×1
backbone.js ×1
database ×1
flask ×1
java-ee ×1
javascript ×1
jsf ×1
laravel ×1
laravel-5 ×1
php ×1
python ×1
token ×1
web-config ×1
web-services ×1