在VS Express 2013中为新注册的用户添加默认角色

时间:2015-07-14 16:50:25

标签: c# asp.net

我从默认创建的Register.aspx.cs开始,添加了添加到用户的FirstName和LastName中。这很好。

我现在希望能够将任何新用户默认为“用户”角色,以便他们只能访问适当的页面。我在旧版本的VS上看到很多帖子,但似乎没有在这里工作。我已经为AspNetRoles表(管理员,用户)添加了2个角色。

我是VS和C#的新手,所以很可能错过了一些简单的东西。

当前代码:

using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.AspNet.Identity.Owin;
using System;
using System.Linq;
using System.Web;
using System.Web.UI;
using WebApplication1.Models;

namespace WebApplication1.Account
{
    public partial class Register : Page
    {
        protected void CreateUser_Click(object sender, EventArgs e)
        {
            var manager = new UserManager();
            var user = new ApplicationUser()
            {
                UserName = UserName.Text,
                FirstName = FirstName.Text,
                LastName = LastName.Text
            };
            IdentityResult result = manager.Create(user, Password.Text);
            if (result.Succeeded)
            {
                IdentityHelper.SignIn(manager, user, isPersistent: false);
            IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
            }
            else 
            {
                ErrorMessage.Text = result.Errors.FirstOrDefault();
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

登录时检查用户的角色。

我不确定,但我认为新用户默认情况下根本没有任何角色。因此,应该很容易检查它们所处的角色,确定它们是新用户,然后将它们分配给您希望它们所在的角色。

https://msdn.microsoft.com/en-us/library/system.web.security.roles.addusertorole(v=vs.110).aspx

http://www.asp.net/web-forms/overview/older-versions-security/roles/assigning-roles-to-users-cs

using System.Web;
using System.Web.Security; // Add this to import the namespace


Roles.AddUserToRole(userName, roleName)