AuthorizeAttribute

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;


namespace pdf2word.Areas.User
{
    public class UserAuthorize : AuthorizeAttribute
    {
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            base.OnAuthorization(filterContext);
            if (filterContext.Result is HttpUnauthorizedResult)
            {
                filterContext.Result = new RedirectResult(
                string.Concat("/user/Account/Login", "?ReturnUrl=", filterContext.HttpContext.Server.UrlEncode(filterContext.HttpContext.Request.Url.ToString())));
            }
        }


        private bool CookieIsValid(HttpCookie cookie)
        {
            if (cookie == null) return false;


            try
            {
                FormsAuthenticationTicket ticketback = FormsAuthentication.Decrypt(cookie.Value);
                if (String.IsNullOrEmpty(ticketback.Name))
                    return false;
                else
                    return true;
            }
            catch
            {
                return false;
            }
        }




        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (httpContext == null)
                return false;


            if (CookieIsValid(httpContext.Request.Cookies["cokiename"]))
                return true;
            else
            {
                httpContext.Response.StatusCode = 403;
                return false;
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 .NET 6 中,`AuthorizeAttribute` 仍然是用于进行身份验证和授权的重要特性之一。它用于标记需要进行身份验证的控制器或动作方法,并确保只有经过身份验证的用户才能访问它们。 要在 .NET 6 中使用 `AuthorizeAttribute`,你可以按照以下步骤操作: 1. 在你的控制器或动作方法上添加 `AuthorizeAttribute` 特性。例如: ```csharp [Authorize] public IActionResult MyAuthorizedAction() { // 这个动作方法需要进行身份验证才能访问 // ... } ``` 2. 根据你的需求,你可以通过 `Roles`、`Policy`、`AuthenticationSchemes` 等属性对 `AuthorizeAttribute` 进行进一步配置。例如: ```csharp [Authorize(Roles = "Admin", Policy = "CustomPolicy", AuthenticationSchemes = "Bearer")] public IActionResult MyAuthorizedAction() { // 这个动作方法需要进行身份验证,并且用户必须是 "Admin" 角色、满足 "CustomPolicy" 策略,并使用 "Bearer" 认证方案进行认证 // ... } ``` 注意,以上示例中使用的 `AuthorizeAttribute` 是命名空间 `Microsoft.AspNetCore.Authorization` 中的类。确保你的项目引用了正确的依赖项并导入了正确的命名空间。 另外,你可能还需要配置身份验证和授权的其他相关设置,例如身份验证方案、策略等。这些设置可以在 `Startup.cs` 文件中的 `ConfigureServices` 方法中进行配置。例如: ```csharp public void ConfigureServices(IServiceCollection services) { // ... services.AddAuthentication("Bearer") .AddJwtBearer("Bearer", options => { // 配置 JWT Bearer 认证选项 // ... }); services.AddAuthorization(options => { options.AddPolicy("CustomPolicy", policy => { // 配置自定义策略 // ... }); }); // ... } ``` 请根据你的具体需求进行适当的配置和调整。希望这些信息对你有所帮助!如果你有更多问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值