ASP.NET MVC 授权

32

我如何在MVC asp.net中实现授权认证?


1
请查看 http://nerddinner.codeplex.com/。 - CmdrTallen
4个回答

54

使用Authorize属性

[Authorize]
public ActionResult MyAction()
{
   //stuff
}

你也可以在控制器上使用它。也可以传递用户或角色。

如果你想要更多的控制权,你可以尝试像这样的东西。

 public class CustomAuthorizeAttribute : AuthorizeAttribute
    {
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            string[] users = Users.Split(',');

            if (!httpContext.User.Identity.IsAuthenticated)
                return false;

            if (users.Length > 0 &&
                !users.Contains(httpContext.User.Identity.Name,
                    StringComparer.OrdinalIgnoreCase))
                return false;

            return true;
        }
    }

4

在ASP.NET MVC beta中,有一个授权功能,创建MVC项目时,Visual Studio会自动添加一个使用授权的控制器。一个有用的提示是,它被称为“过滤器”。因此,尝试搜索“Authorization Filter MVC”,任何4或更高版本的预览都会有所帮助。


啊,我刚刚在搜索“ASP.NET”、“MVC”授权,但并没有找到太多有用的信息,谢谢你让我知道要搜索过滤器。另一个问题是,当我搜索MVC帮助时,我发现有些是针对之前版本的预览版,但并没有标注为“Preview 2”等! - asleep
我也遇到了一些MVC帖子未被标记的问题。通常我会检查帖子上的日期,如果超过几个月,我就会觉得有些可疑。我将深入研究MVC并撰写相关博客。你有什么要求吗? - MrJavaGuy
当然,如果您尝试使用jQuery进行ajax表单提交和更新而不是标准的控制器提交和返回视图,那将是非常棒的!欢迎在博客中发布链接! - asleep
jQuery的ajax并不是那么酷。实际上,控制器操作可以直接返回JsonResult(它们并不总是必须呈现视图),所以整个过程相当平淡无奇! :-) - Chris
我想看看是否可以在三种模式下并行实现解决方案:ASP.NET、WPF和Silverlight。(我注意到有一种“WPF浏览器应用程序”类型...需要检查一下...) - dkretz

2

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接