首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC3和成员API配置

问MVC3和成员API配置
EN

Stack Overflow用户
提问于 2011-12-01 05:46:31
回答 2查看 483关注 0票数 1

我正在使用创建新的MVC应用程序时提供的默认成员资格代码。

//Account Controller:

代码语言:javascript
复制
        if (ModelState.IsValid)
        {
            // Attempt to register the user
            MembershipCreateStatus createStatus;
            Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

            if (createStatus == MembershipCreateStatus.Success)
            {
                FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
                return RedirectToAction("Index", "Student");
            }
            else
            {
                ModelState.AddModelError("", ErrorCodeToString(createStatus));
            }
        }

如何防止用户在注册前直接转到学生控制。我有其他页面,我不应该让用户在注册前看到。如果用户尝试在注册前转到页面,我想将他们重定向到帐户控制器。

另外,我如何显示特定用户的特定页面(操作),在asp.net应用程序中,我在web.config文件中使用了以下代码,它在mvc中类似吗?

代码语言:javascript
复制
 <location path="Admin/Test.aspx">
   <system.web>
      <authorization>
       <deny users="?"/>
       <allow users="*"/>
     </authorization>
   </system.web>
 </location>

谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-12-01 05:52:55

对于特定于操作的授权,可以使用操作方法的[Authorize]属性。这将要求用户在能够在yoru控制器中执行该Action方法之前进行身份验证。

代码语言:javascript
复制
[Authorize]
public ActionResult YourActionMethod()
{
    // your code here
}

至于您的web.config授权规则,您可以在目录中为那些您希望仅保护给授权用户(或特定的组、用户等)的视图创建一个web.config。您只需将包含授权规则的web.config放入该目录。

票数 1
EN

Stack Overflow用户

发布于 2011-12-01 05:54:09

.NET MVC提供了一个非常好的选项--在加载操作之前使用自定义过滤器和属性来执行检查。

例如,您需要限制对某些Action的访问,因此您只需在该操作的顶部设置Authorize属性。如下所示:

代码语言:javascript
复制
[Authorize]
public ActionResult Index()
{
   return View();
}

如果你想限制对这个控制器中所有动作的访问,你应该把这个属性放在控制器类的顶部。如下所示:

代码语言:javascript
复制
[Authorize]
public HomeComtroller : Controller
{
    public ActionResult Index()
    {
       return View();
    }
}

更多选项,例如,如果要仅为具有正确用户角色的用户提供访问权限:

代码语言:javascript
复制
[Authorize(Roles = "Admin")]
    public ActionResult Index()
    {
       return View();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8333373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档