zoukankan      html  css  js  c++  java
  • 在mvc3中经常使用身份验证实现

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using PetsStore.Models;
    using PetsStore.EntitiesRepositories;

    namespace PetsStore.Filters
    {
        public class AdminAttribute:AuthorizeAttribute
        {
            private UserRepository userRepository = new UserRepository();
            protected override bool AuthorizeCore(HttpContextBase httpContext)
            {
                if (!httpContext.User.Identity.IsAuthenticated)
                {
                    return false;
                }
                var userName=httpContext.User.Identity.Name;
                User user = userRepository.GetByUserName(userName);
                if (!Roles.Contains(user.Role.RoleName))
                {
                    return false;
                }
                return true;
            }
            protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
            {
                if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
                {
                    filterContext.Result = new RedirectResult(string.Format("/Account/AdminLogin?ReturnUrl={0}/{1}", filterContext.RouteData.Values["controller"], filterContext.RouteData.Values["action"]));
                }
                else
                {
                    filterContext.Result = new ContentResult() { Content = "对不起,您的权限不足!" };
                }

            }
        }
    }

  • 相关阅读:
    Java EE企业应用发展
    黄金点游戏
    C++ Word Count 发布程序
    C++原创应用类库和工具类库
    软件之魂
    latex表格multirow的使用
    web service和ejb的区别
    RPC
    hashcode()和equals()方法
    JSON
  • 原文地址:https://www.cnblogs.com/yxlblogs/p/3050855.html
Copyright © 2011-2022 走看看