我被要求使用MVC创建一个poc,当用户访问该网站时。它将限制对整个网站的访问(授权)。然后,开发人员将开始添加授权属性来解锁页面和功能。这种方法可行吗?
目前在MVC中,默认情况下,一旦最终用户通过身份验证,所有内容都是“解锁”的。然后,开发人员会添加authorize属性来开始锁定站点,这与我的任务相反。
我们这种方法的用例是开发人员忘记向关键操作添加authorize属性。在这种情况下,一个敏感的功能现在对任何通过身份验证可以使用该应用程序的人解锁。注意:在此场景中,控制器将不具有authorize属性。
编辑:添加的代码段
FilterConfig
public class Filte
如何使用MVC WebApi中的自定义响应消息更改默认响应消息?
{ "Message": "Authorization has been denied for this request." }
提前感谢
这是我的定制ResponseModel
public class DefaultResponseModel<T>
{
public string ResponseID { get; private set; }
public DateTimeOffset ResponseDateTime { get; pri
我在Windows Authentication背后使用了ASP.Net Web API,并使用Authorize属性来指定用户可以访问哪些控制器和函数。这很好用。问题是,我希望帮助区域只反映用户已被授予访问权限的内容。我很好奇是否有人以某种方式做到了这一点。这是在控制器、应用程序启动或帮助控制器级别完成的。
先谢谢你...
我的一个控制器的代码片段
[Authorize]
public class TaktTimeController : ApiController
{
private BIDataContainer db = new BIDataContainer();
我正试图抓住角色和主张的基础上。
只看这篇文章
假设一个用户登录,他有sale角色,但是他尝试访问管理角色,但是我发现没有代码,其中的用户角色和提供的角色是比较知道用户有或没有管理角色。看这个地区
private void IsUserAuthorized(AuthorizationContext filterContext)
{
// If the Result returns null then the user is Authorized
if (filterContext.Result == null)
如何测试WebApi/MVC项目中方法或控制器上的授权属性是否具有特定角色
这样我就可以测试一种方法来做下面这样的事情?
[Test]
[TestCase("Put", new []{"Admin","TeamMember"})]
[TestCase("Post", new []{"Admin","TeamMember"})]
[TestCase("Get", new []{"TeamMember"})]
public voi
我有一个MVC控制器和一个创建菜单的类,这些菜单中的项必须仅显示给具有特定角色的用户以执行控制器的操作。在下面的例子中,我不想向使用Role2的用户显示详细信息的菜单项。我最终要做的是在菜单项上指定相同的角色,与我已经在控制器上指定的角色相同。所以我有两个定义角色的地方,它们必须是相同的,所以很容易出错。 我想做的是以某种方式从控制器那里获得角色,但我不知道如何做到这一点,或者这是否可能。 [Authorize(Roles = "Role1,Role2")]
public class MyController
{
public IActionResult Index(
我正在尝试在我的WebApi控制器中实现Authorize属性。我找到了关于如何实现Authorize的资源,甚至在实现授权时需要设置线程和HttpContext原则。但我找不到如何/在哪里编写授权逻辑的示例。
public class MyController : ApiController
{
[Route("")]
[Authorize]
public async Task<IHttpActionResult> Get() {}
}
public class MyAuthorizationProvider
{
public vo
我有一个继承自MVC类的类型。在构造函数(它接受一个参数)中,我想设置Roles属性,但我得到了一个错误:“这不是一个有效的对象构造表达式。显式对象构造函数必须调用备用构造函数或初始化对象的所有字段,并指定对超类构造函数的调用。”有人能帮我解决我做错的事吗?
尝试1:
type MyAuthorizer =
inherit AuthorizeAttribute
new([<ParamArray>] roles : string[]) =
let x = new MyAuthorizer()
//x.Roles <- "
我有一个覆盖OnActionExecuting的ActionFilterAttribute。如果用户未通过身份验证,我希望返回401Authorized状态和一个带有自定义消息和其他属性的Response类型的JSON对象
public class Response
{
public Boolean Error { get; set; }
public IList<string> Messages { get; set; }
public object Data { get; set; }
}
这就是我所做的:
public override void On
我创建了一个自定义授权,当一个操作有[Authorize]时,它将被忽略。
public class MyGlobalAuthorizeAttribute: AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
// check if action is decorated with an Authorize...
var action = filterContext.ActionDescriptor
我有两个特点:
public class AnonymousAllowedAttribute : AuthorizeAttribute { }
public class ActionAuthorizeAttribute : AuthorizeAttribute {
public override void OnAuthorization(AuthorizationContext filterContext) {
bool skipAuthorization =
filterContext.ActionDescriptor.IsDefined(typeof(A
我已经实现了下面的代码到generate refresh token,我把这些代码保存到数据库中供将来使用。
public class SimpleRefreshTokenProvider : IAuthenticationTokenProvider
{
public async Task CreateAsync(AuthenticationTokenCreateContext context)
{
var clientid = context.Ticket.Properties.Dictionary["as:client_id"];
我做了一些快速的谷歌搜索,没有想出任何方法来做到这一点,所以如果这个问题是重复的,我道歉。
我有一个这样的类:
using System.Web;
using System.Web.Mvc;
namespace Authorization
{
public class AuthorizeAttribute : ActionFilterAttibute
{
public string Address { get; set; }
public override void OnActionExecuting(ActionExecutingConte
我不能从集线器槽控制器调用服务器方法。由于控制器的授权属性,我目前正在获取此错误:
'AuthorizeAttribute' is an ambiguous reference between 'System.Web.Mvc.AuthorizeAttribute' and 'Microsoft.AspNet.SignalR.AuthorizeAttribute'
知道为什么会发生这种情况吗?或者从控制器操作调用signalR方法的正确方法是什么?
这是我的装备
[Authorize]
public class UserController
我试图在我的Web控制器上实现一个自定义授权属性,但是遇到了一个意想不到的行为。
<Authorize(Users:="myUser")>
Public Function GetTodoItems() As IQueryable(Of TodoItem)
上面的代码工作得很好:它将允许"myUser“检索项目,而没有其他任何人被允许访问。但是,当我使用自定义授权尝试相同的方法时,将跳过整个检查,并且任何用户都可以访问该资源。我的派生类中的AuthorizeCore或OnAuthorization重写方法都不会被调用。
<M
我想在不创建自定义授权对象的情况下扩展Authorize属性的关键字过滤器。
我想添加一个新的关键字调用级别,并查看用户访问级别是否高于某个级别。
这将允许我只为用户创建一个角色。
它的用法如下
[Authorize(level > 1)]
如果您需要更多信息以更好地了解我正在尝试解决的问题,请让我知道。
我已经看过了,但还没能解决这个问题。你能提供一个代码示例吗?这就是我这么做的目的。当我使用电平过滤器时,我得到了错误。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web
我公开了一个端点,以便与第三方集成,他们的要求是我根据被发布的主体中传递的密钥授权他们对我的端点的请求。然后,我的代码将需要验证所传递的密钥是否与我侧的某个预定值相匹配。传入的模型如下所示:
public class RequestBase
{
public string ApiKey { get; set; }
...
}
探索的选项,我并没有看到真正匹配我正在尝试做的事情。我认为一个来自问题的定制问题会奏效,但我没有任何运气,无论我做什么,我都能得到401。到目前为止,这就是我所拥有的:
[AttributeUsage(AttributeTargets.Class)]
pu
我研究mvc3,我读了很多文章或在asp.net网站上看视频。在我了解了一些关于mvc3的知识之后,所以我对、授权属性来验证用户是否登录有疑问。创建页面以验证用户时的默认代码如下所示:
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))