我从默认创建的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();
}
}
}
}
答案 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)