asp.net-mvc – 从web.Config授权Controller级别的用户
发布时间:2020-12-16 06:32:49 所属栏目:asp.Net 来源:网络整理
导读:在我的控制器中[授权]注释. 我想获取在web.config文件中设置的授权用户列表. add key="authorizedUsers" value="jeff,dan,mindy,claudia"/ 我知道在控制器中你可以做类似的事情: [Authorize Users="jeff,claudia"] 但我宁愿只更新web.config文件而不必重新
在我的控制器中[授权]注释.
我想获取在web.config文件中设置的授权用户列表. <add key="authorizedUsers" value="jeff,dan,mindy,claudia"/> 我知道在控制器中你可以做类似的事情: [Authorize Users="jeff,claudia"] 但我宁愿只更新web.config文件而不必重新编译.无论如何要读取我的列表的web.config文件,然后将其添加到[Authorize]属性?我也使用Windows身份验证而不是表单身份验证. 解决方法
您可以实现从AuthorizeAttribute继承的自定义AuthorizeAttribute.
我假设您正在使用FormAuthentication.否则,它将无法正常工作. [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,AllowMultiple = true,Inherited = true)] public class CustomUserAuthorizeAttribute : AuthorizeAttribute { private string[] _usersSplit { get { var authorizedUsers = ConfigurationManager.AppSettings["authorizedUsers"]; return authorizedUsers.Split(new[] {","},StringSplitOptions.RemoveEmptyEntries); } } protected override bool AuthorizeCore(HttpContextBase httpContext) { if (httpContext == null) throw new ArgumentNullException("httpContext"); IPrincipal user = httpContext.User; return user.Identity.IsAuthenticated && (_usersSplit.Length <= 0 || Enumerable.Contains(_usersSplit,user.Identity.Name,StringComparer.OrdinalIgnoreCase)); } } 用法 [CustomUserAuthorize] public ActionResult Test() { ViewBag.Message = "Your page."; return View(); } 仅供参考:理想情况下,您希望使用基于角色的身份验证,并将其存储在数据库中.它有点容易维护.但是,这取决于您的需要. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何在收到OData.PageResult时避免使用406?
- 如何识别ASP.NET Web表单和ASP.NET MVC网站?
- 两个单选按钮ASP.NET C#
- asp.net – Application_Start和Application_OnStart之间的
- ASP.net MVC验证突出显示和不正确的字段Jquery上的图标
- asp.net-mvc – 在Generic Repository中定义Default构造函数
- asp.net – PostbackUrl vs NavigateUrl
- 在asp.net中回发
- asp.net-mvc – .NET MVC是否有强类型的RedirectToAction?
- asp.net – 如何查看Chrome开发者工具中发布到表单的数据大
推荐文章
站长推荐
热点阅读